Edin Džeko, so often a scorer of pivotal goals in his City career, broke the deadlock in the 64th minute and soon added a second. Substitute Stevan Jovetić extended City's lead in stoppage-time before the indomitable Yaya Touré ended the evening with a superb solo goal.
Barring an unprecedented scoreline between Liverpool and Newcastle United, City require just a point against West Ham United on Sunday to seal the league on the final day.
After Liverpool's capitulation to Crystal Palace on Monday, City had been expected to cruise home, but had to be patient against the Villans.
City's inspirational right-back Pablo Zabaleta sounded a cautious note ahead of the final day of the season.
He told Sky Sports 1: "I think it's a massive step forward but we know that there's still one game to play and we had the experience two years ago on the last day of the season against QPR, and sometimes you don't know.
"We know (City's final day opponents) West Ham are safe but they have very good players, they play really well on the counter-attack, they can score on set-pieces, so it's going to be very very tough, like tonight, so we can't relax."
He added: "It was a very difficult game (tonight). It was a very solid performance, nothing is done yet, we know that there's still one game to play but it was very important to win tonight.
"We have a great chance so hopefully on Sunday we can celebrate the title."