The Bulgarian struck early in the first half to seal maximum points for the home side, who move to within seven of league leaders Paris Saint-Germain having played a game more
The Bulgarian's clever finish in the opening stages saw Claudio Ranieri's side move to within seven points of league leaders Paris Saint-Germain and guaranteed a return to European football next season, having played a game more.
It took Monaco just five minutes to break the deadlock, with Berbatov lifting a clever lob over David Ospina for his third goal in Ligue 1 since his January move.
Valere Germain came close to doubling the advantage as he fired a shot off the post after 20 minutes as Monaco continued to pile on the early pressure.
Valentin Eysseric was denied by a smart save from Danijel Subasic, and had a penalty shout for handball waved away by the referee, but they had Ospina to thank for keeping the scores at 1-0 heading into the break as Monaco kept pressing throughout the half.
Nice stepped up their performance in the second half, with Subasic twice called into action to deny an equaliser, denying Didier Digard on 70 minutes before clearing the danger following a corner.
Substitute Nabil Dirrar spurned a chance on the counterattack after some effective link-up play with goalscorer Berbatov, as Monaco looked to close out a match which never fully fired into life.
PSG remain clear leaders and will have a game in hand after playing the Coupe de la Ligue final against Olympique Lyonnais this weekend, while Monaco move nine points clear of third-placed Lille. Nice remain 13th.