City’s record scorer Aguero, netting for only the fourth time in what is to be his final season with the club, put the visitors ahead by rifling past Vicente Guaita in the 57th minute.
Ferran Torres then doubled the advantage two minutes later with an effort from just outside the box.
Pep Guardiola’s men, 13 points clear at the top, will be crowned champions if second-placed Manchester United lose at home to Liverpool on Sunday.
Havertz slotted in his first in the 10th minute having been teed up by Mason Mount, and added a second, set up by Timo Werner, shortly after the break.
It left 18th-placed Fulham nine points adrift of safety, with Brighton having earlier taken a big step towards survival by beating Leeds 2-0 at the Amex Stadium.
Pascal Gross put the Seagulls in front with a 14th-minute penalty awarded following an Ezgjan Alioski foul on Danny Welbeck, who then added the second in fine style with 11 minutes of normal time remaining, firing in after executing a Cruyff turn.
Brighton, up from 17th to 14th, are 10 points clear of the relegation zone.
Saturday’s late game saw Everton’s top-four hopes suffer a blow as they were beaten 2-1 at home by Aston Villa.
Anwar El Ghazi curled an 80th-minute winner after Ollie Watkins’ opener for the visitors in the 13th minute had been cancelled out six minutes later by Dominic Calvert-Lewin.
Everton are nine points behind Chelsea in eighth, while Villa moved up to ninth place.