Middlesbrough, feeling hard done by a harsh refereeing decision, felt justice had been done when Calum Chambers bungled the ball into the back of the net with 13 minutes to go. What a result it would be in the relegation battle.
It was not to be. Gabriel Jesus, on his return from injury, scored a thumping header with five minutes remaining to peg back Boro for the second time, leaving the home side with a valuable point but a bitter taste in their mouths.
City had its first good effort on net after eight minutes as Sergio Aguero shifted to his left and looked for the top corner but the ball curled just over the bar.
[ MORE: Watch full PL match replays ]
The game had little on net as it progressed past the half-hour mark, until Middlesbrough had a few half-chances. Marten De Roon put one over the bar under heavy pressure inside the penalty area, and then Stewart Downing also missed the target moments later.
With the home side impressing throughout the first half, matching City step for step, they managed to find a way in front. A Kevin De Bruyne cross was cut out by George Friend and it sparked a vicious break. Downing’s cross from the left was too far behind Friend, but it fell to Alvaro Negredo who fell as he shot, but managed to get the left-footed effort off the left post and into the back of the net as the home fans erupted. Negredo’s goal against his former club was only the beginning of his fantastic performance.
[ MORE: Latest Premier League standings ]
After the break, Pep Guardiola kept the starting lineup out there momentarily, but quickly made a double change just four minutes in as he yanked off Aleix Garcia and Gael Clichy in favor of Leroy Sane and Raheem Sterling. They immediately made an impact as Sterling’s effort on net was only blocked last-ditch by Calum Chambers.
City began to attack with more vicious intent, and Sterling again had a shot blocked by Chambers’ face on 57 minutes. Their pressure bore fruit as Sane went down in the box under pressure from De Roon, and referee Kevin Friend pointed to the spot. The Middlesbrough players absolutely lost their minds, with both De Roon and Fabio earning yellow cards for dissent after the decision. At first glance of the replay there was a clear foul, but upon closer inspection it appeared Sane leaned heavily into the contact to draw the whistle.
[ MORE: Full lineups, stats, box score ]
Aguero blasted the penalty in to leave little doubt as the score leveled at 1-1, with the home fans and players still incensed. Middlesbrough looked for a way back into the lead by bringing on Adama Traore, who immediately drew a yellow on Nicolas Otamendi for a foul on a breakaway.
Middlesbrough would eventually get justice for the penalty, as they went back in front with 13 minutes remaining. A free-kick was only parried awkwardly by Willy Caballero, and somehow City failed to clear with the ball pinging all over the box. Negredo somehow kept it alive with a back-heel, and eventually his shot was turned in clumsily by Chambers who wheeled away in delight.
Again though, the lead would not hold. Fabio fouled Sane on the left flank, and Aguero delivered a cross into the box, and only Jesus judged it correctly, cracking the header past Brad Guzan. That leveled things at 2-2, ripping the collective hearts out of Riverside Stadium. City pushed for a winner down the stretch in tense final minutes, but could not find the right formula. Aguero had to come off late with what looked to be a slight knock, a slight concern for City at the end.
The point for Middlesbrough sees them climb within four of Swansea City, who also drew a Manchester club earlier on Sunday. They still remain six points adrift of safety with Hull City well above, leaving the draw feeling like a brutal loss. For City, they keep pace with Manchester United, but cannot build any lead above their single point.