A frustrating day at the office for City, with the champagne put back on ice for at least 24 hours.
Victory over the London side would have seen Pep Guardiola's men crowned Premier League champions for the third time in four seasons.
Things looked to be going to plan when Raheem Sterling smashed home the opening goal on the stroke of half-time.
And Thomas Tuchel's side rallied after the break, hauling themselves level after the hour through a stinging low drive from Hakim Ziyech.
We pushed forward in search of the all-important lead, with Sterling convinced he had been brought down in the box by Kurt Zouma late on, but Anthony Taylor waved away the protests.
The sucker punch came in stoppage time, Marcos Alonso scuffing home the winning goal from Timo Werner's cutback.
It means City's title celebrations are put back on hold, with a United defeat against Aston Villa on Sunday sufficient to guarantee top spot.
You can watch full-match replays of every City game with a CITY+ subscription.