It clinched a domestic double for coach Luciano Spalletti in his first season in St Petersburg after the Italian led the big-spending club, backed by Russian energy giant Gazprom, to victory in the Russian Cup in May.
Zenit, who missed a chance to seal the title in midweek when they suffered a 3-1 home defeat by CSKA Moscow, had to wait until five minutes before halftime to go ahead against Rostov.
Serbian striker Danko Lazovic scored from the penalty spot before Sergei Semak and fellow Russia international Alexander Kerzhakov made it 3-0 late in the second half.
Substitute Alexander Bukharov then sealed the victory with two goals in added-time.
Spalletti paid tribute to his players after the match.
"There was a lot of pressure (to win) on the team and it was like that for the last four months - we had a big lead and people thought we should win the title almost any day," the Italian told Russian television NTV.
"But nobody would just give us the points. We had to fight in every match and I would like to give special thanks to my players, our (Gazprom) boss (Alexei Miller) and all our fans and this beautiful city (of St Petersburg)."
The win gave Zenit an unassailable eight-point lead over second-placed CSKA, who were held to a 1-1 draw at mid-table Spartak Nalchik earlier in the day.
It was Zenit's third league title and the second since 2007 when they were led by Dutchman Dick Advocaat.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.