Kyle Walker-Peters stunned the visitors when he finished off a well-worked move by curling home the opener for Ralph Hasenhuttl’s men with just seven minutes on the clock.
It took City until the 65th minute to level through Aymeric Laporte, with both Kevin De Bruyne and Gabriel Jesus striking the woodwork as Pep Guardiola’s side searched in vain for a winner.
The result leaves the reigning champions 12 points clear of second-placed Liverpool, albeit having played two games more, ahead of a 17-day break from top-flight action.
Ralf Rangnick’s men looked set for more frustration in a poor quality encounter before Rashford latched on to a neat pass from fellow substitute Edinson Cavani to fire home with virtually the last kick of the game.
Cristiano Ronaldo had gone close in the opening period and was denied a penalty appeal as David Moyes’ Hammers began to grow in confidence.
Fred had the first shot on target for the hosts in the 49th minute which was well saved by Alphonse Areola, while Michail Antonio missed a late chance for the Hammers.
But a series of late attacking substitutions by Rangnick ultimately paid off with a goal that sparked raucous celebrations and sealed consecutive wins for the first time since the German took charge.
Duncan Ferguson’s second spell as Everton caretaker manager got off to a dismal start as Emiliano Buendia sealed a 1-0 win for Aston Villa at Goodison Park.
Worse could come for the hosts as they face a likely investigation into a bottle-throwing incident which floored both Matty Cash and former Everton defender Lucas Digne in the wake of the goal.
Buendia headed the only goal in first-half stoppage time to make the first appearance of former Liverpool captain Steven Gerrard at Goodison as a head coach a memorable one.
Everton laboured for much of the afternoon and despite captain Yerry Mina twice coming close with headers, Ferguson’s men only managed to register a single shot on target.
Jonjo Shelvey gave Newcastle’s top-flight survival hopes a major boost as his second-half free-kick secured a 1-0 win at Leeds.
Shelvey curled the ball home from 20 yards in the 75th minute to snatch victory over Marcelo Bielsa’s men, who went into the game on the back of two successive wins.
Leeds dominated the early stages and were only denied an early lead by Fabian Schar’s last-ditch tackle on Daniel James after Raphinha’s clever cut-back.
Newcastle could have rubber-stamped their win in stoppage time when Illan Meslier was forced into a good save to deny Joe Willock.
Ruben Neves grabbed a late winner for Wolves after their game against Brentford at the Community Stadium had been held up for 20 minutes by a drone.
The drone appeared above the stadium after 31 minutes and referee Peter Bankes and fourth official Martin Atkinson ordered the players off the field in accordance with Premier League rules.
Joao Moutinho put the visitors in front three minutes into the delayed second half after a neat one-two with Nelson Semedo in the box.
Ivan Toney drilled a 71st-minute equaliser for the hosts after being set up by Bryan Mbeumo but Neves pounced seven minutes later to make it 2-1 and seal the visitors’ third consecutive top-flight win.