Josko Gvardiol extended his remarkable scoring streak with two goals at Craven Cottage, taking his tally to five in seven matches in all competitions as we hunt a record-breaking fourth title.
The Croatian defender fired us into a 13th minute lead when he rounded off a slick, 19-pass move with a delightful finish.
Phil Foden scored a crucial second just before the hour mark before Gvardiol’s second and a Julian Alvarez penalty in stoppage time wrapped up an excellent performance.
A seven-game winning streak in the Premier League takes us two points clear at the summit and means victories in our final matches against Tottenham and West Ham would guarantee the trophy.
What happened
With the sun shining on the banks of the River Thames, the lunchtime kick-off provided the perfect opportunity to start the weekend in style.
Guardiola made just one change from the side that beat Wolves with Ruben Dias replacing Kyle Walker and Manuel Akanji moving across to right-back.
Any slip-up would hand the advantage to Arsenal and while Fulham may not be fighting for a European place or for survival, they made a positive start aiming to upset our title challenge and sign off their home fixtures with a win.
After pushing City back in the opening minutes, we wrestled control of possession and snatched an early advantage with our first shot on target.
Working the ball across the pitch patiently, we looked for a chance to break through and it was Gvardiol that seized the opportunity, cutting inside before exchanging passes with Kevin De Bruyne and sidefooting neatly into the corner.
It disrupted Fulham’s smart start, and moments later, a panicky mix-up between Calvin Bassey and Bernd Leno gave a sight of goal to Erling Haaland but he volleyed over.
City did suffer an early setback with Nathan Ake unable to continue after a foot injury, and was replaced by Walker, with Akanji switching back to the middle.
On the other flank, Gvardiol was proving a huge threat and he beat the offside trap to race clear, pulling the ball back with Bernardo’s shot well saved by Leno.
Fulham were bravely defending with a high line to try to squeeze the space but the Blues’ intense pressure saw us keep winning the ball high up the pitch to keep the Cottagers’ at arm’s length.
We enjoyed large swathes of possession but we couldn’t find a second before the break with De Bruyne and Bernardo having dangerous shots in the box blocked and Akanji firing over from close range.
Fulham boss Marco Silva brought on Tom Cairney and Adama Traore at half-time to try to change the rhythm of the match and the home side looked more of a threat.
The Spanish winger created Fulham’s best opportunity when he fired in a low cross that Rodrigo Muniz tried to flick home but Ederson scrambled across to keep it out.
And the changes created more space which City ruthlessly exploited.
A second goal would help to settle any nerves but former Gunners’ keeper Leno was doing his best for his old club with good saves to deny Bernardo and De Bruyne.
But he was finally beaten in the 59th minute with an exquisite right-foot finish from Foden from just inside the box.
Bernardo created the opportunity with an outrageous turn to take the ball away from Antonee Robinson but when he was tackled by Palhinha’s strong challenge, it ran to Foden who lethally tucked his shot inside the far post.
The players celebrated wildly in front of the thousands of travelling fans to the side of the goal who were loving their day in the sunshine.
Haaland missed a chance to make it three, but it was Gvardiol who is suddenly running the Premier League’s leading scorer close for proficiency in front of goal in recent weeks, who struck again.
Not that he seemed convinced that he had added his second when he squeezed in Bernardo’s cross from an extremely tight angle.
The Croatian defender thought he was offside, but when the flag stayed down, he raced away to celebrate and VAR proved the decision was correct.
Some supporters were calling for Gvardiol to be given the opportunity to claim his hat-trick when we were awarded a 97th minute penalty after Alvarez was chopped down by Issa Diop, who was given a second yellow card.
But with goal difference still potentially important, the Argentinian took the spot-kick himself, sending Leno the wrong way.
TEAMS
Fulham: Leno, Castagne, Diop, Bassey, Robinson, Palhinha, Iwobi, Willian (Traore 46), Perreira (Wilson 74), De Cordova-Reid (Cairney 46), Muniz (Broja 67)
Subs not used: Rodak, Tete, Ream, Reed, Raul
City: Ederson, Akanji, Dias, Ake (Walker 22), Gvardiol, Rodrigo, Kovacic (Lewis 82), De Bruyne (Doku 75), Bernardo, Foden (Bobb 82), Haaland (Alvarez 82)
Subs not used: Ortega Moreno, Stones, Gomez, Nunes
PLAYER OF THE MATCH
Gvardiol will get the headlines for his goals but it was another outstanding all-round performance.
He was part of a defence that restricted the home side to just one shot all afternoon as we kept the Cottagers away from the danger zone for much of the game.
And the 22-year-old looks settled into the left-back position and offers an attacking threat.
His initiative to change the rhythm of an early move led to his opening goal and created the crucial breakthrough in a tricky game.
KEVIN HEAVEN
Everyone knows that De Bruyne is the assist king, and his ability to provide the key moments is almost taken for granted.
But on a regular basis, he brings up another milestone to remind us all just how incredible his contributions are.
The Belgian’s pass for Gvardiol’s opener was the 111th in the Premier League, taking him joint second for all-time assists, only behind Ryan Giggs.
He is also joint sixth on the assists list for 2023/24 with nine, with Aston Villa’s Ollie Watkins on 12 leading the way. Not bad for a player that missed five months of the season after surgery in the opening month of the season.
GUARDIOLA REACTION
“We did a really good job today. The first ten minutes we struggled because as always they defend really well.
“When [Bernardo] and [Kovacic] and Rodri made a long action with a lot of passes and calmed the game, then Josko managed to get the goal.
“We played really well and now we will recover, go back to Manchester, then come back to London to play the final [against Spurs] the big final we have to try and retain our title.”
GVARDIOL REACTION
“Another great performance, not just from me but the team as well, today we showed who we are and what we are ready for.
“Another two goals for me and of course another clean sheet. Really happy. We discussed about me taking the penalty, and of course I would have liked to, but we have a taker and he takes them. At the end Julian came on and he took it to score the goal.
“We just need to be focused on ourselves and keep going that way. Of course we talk about [goal difference] and as you can see we are trying to get there. But it is not easy, Arsenal have quality as well and they are doing quite well as well.”
WHAT IT MEANS
City are two points clear at the top of the Premier League and victory in our final games at Spurs and at home to West Ham would guarantee the title.
Liverpool are now out of the title race but Arsenal could move back to the top tomorrow.
The Gunners are in Manchester on Sunday to face United at 16:30 (UK) in their penultimate game of the season.
WHAT’S NEXT
We’re back in London on Tuesday 14 May for another huge Premier League clash when we face Tottenham Hotspur.
Our record at the Tottenham Hotspur Stadium is not the best with no Premier League wins or goals at the venue, but City broke our hoodoo with a 1-0 win in the FA Cup in January.
News about Fulham v Man City
City set English football record with Fulham win
City's 4-0 victory at Craven Cottage on Sunday was our 16th successive win over Fulham in all competitions - marking the longest winning run by a team against any opponent in English football history. Read more
Pitcam highlights: Fulham 0-4 City
Watch the best of City’s precious 4-0 Premier League victory over Fulham from a unique perspective… Watch more
Guardiola: City squad love to play with pressure
Pep Guardiola says his City players relish the pressure of a Premier League title race. Read more
Full match replay: Fulham v City
Watch the full 90 minutes from City's Premier League trip to Fulham... Watch more
Brief highlights: Fulham 0-4 City
Enjoy bite-sized highlights from City’s superb win at Fulham that took us top of the Premier League... Watch more
Gallery: City extend unbeaten league streak at Fulham
View the best images from City's fine 4-0 win at Fulham as we extended our unbeaten Premier League run to 21 straight matches. View more
Gvardiol’s goal-scoring streak not expected by Pep
Pep Guardiola says he has been surprised by Josko Gvardiol’s goal contribution after another two in the 4-0 win over Fulham. Watch more
Extended highlights: Fulham 0-4 City
Enjoy the very best of the action from our impressive Premier League victory at Fulham. Watch more