Match ends, Middlesbrough 2, Manchester City 2.
Gabriel Jesus scored a late equaliser as Manchester City twice came from behind to rescue a point in the race for a top-four finish and dent Middlesbrough's Premier League survival hopes.
Boro thought they had secured a valuable win when Calum Chambers poked in from close range on 77 minutes, only for Jesus to rise and convert Sergio Aguero's cross with five minutes remaining.
It was a cruel blow for the tenacious hosts, who led at the break through Alvaro Negredo's curling strike against his former club, before Aguero levelled with a penalty on 69 minutes after Marten de Roon was penalised for a trip on Leroy Sane.
There was minimal contact as Sane appeared to run into De Roon's standing leg and the decision by referee Kevin Friend incensed Boro, who used their anger to drive them on to take the lead once more.
But they switched off defensively as Jesus capped his first start since recovering from a broken metatarsal with a goal.
Fourth-placed City remain one point ahead of rivals Manchester United, but miss the opportunity to go ahead of Liverpool in third.
A point for Steve Agnew's side matches the results of relegation rivals Hull City and Swansea this weekend, but leaves them six points from safety, with only three games remaining.
- Reaction as Chelsea win and Man City draw
- Listen: 5 live football daily podcast - Spurs dominate Arsenal
Boro blow a gasket
Boro showed a more enterprising style in the first half, capped by a fine counter-attacking move that saw Stewart Downing square for Negredo to curl in off the post despite slipping. After the break, Boro retreated into a defensive mindset reminiscent of their play under former boss Aitor Karanka.
They still showed impressive organisation to repel City's siege with a number of key blocks, but it was no surprise that lively substitute Sane found a way back into the game for the visitors, albeit in contentious circumstances.
The Boro players were furious at the penalty decision and captain Ben Gibson did well to ensure De Roon and Fabio did not get themselves into more trouble than bookings for dissent.
However, instead of losing their heads, the hosts looked renewed. The introduction of Adama Traore allowed them to strike again at the heart of a City defence who looked lightweight and nervy, even with the presence of captain Vincent Kompany.
Negredo was dogged in the City area to prevent the visitors hacking the ball clear and force the ball on to Chambers, with the on-loan Arsenal defender calmly finishing past Willy Caballero.
They looked better when taking the game to City throughout but the perils of that approach were evident in conceding late on, ensuring a result away to Premier League leaders Chelsea on 8 May is even more of a necessity.
|Middlesbrough's 2016-17 run-in|
|Mon 8 May||Chelsea (A)|
|Sat 13 May||Southampton (H)|
|Sun 21 May||Liverpool (A)|
Man of the match - Alvaro Negredo (Middlesbrough)
City limping over the line
Pep Guardiola's side have now won just two of their past eight Premier League games, jeopardising their bid to guarantee Champions League football next season.
West Brom, in eighth, are the highest-placed side that City have left to face, suggesting they should make the top four. But as Boro proved, any team is able to cause this side's defence problems.
A draw, coupled with Chelsea's victory over Everton, ensures the Blues cannot mathematically win the Premier League title this season, ensuring Guardiola will miss out on a trophy in his first season with a club for the first time in his managerial career.
The Spaniard will not take that failure lightly and if several City players could be playing for their futures before a summer overhaul, plenty are failing that audition on this showing.
Jesus Navas was poor as a right wing-back, Aleksandar Kolarov resorted to striking wild efforts from distance despite playing at centre-back and fellow defender Nicolas Otamendi remains unconvincing. At one point Kompany was covering as he hauled down Traore just outside the area.
The introduction of Sane and Raheem Sterling just four minutes into the second half ultimately saved City's blushes and was a clear indication of Guardiola's frustrations with his starting side.
|Manchester City's 2016-17 run-in|
|Sat 6 May||Crystal Palace (H)|
|Sat 13 May||Leicester (H)|
|Tue 16 May||West Brom (H)|
|Sun 21 May||Watford (A)|
A budding partnership?
Guardiola opted to start Aguero and Jesus together for the first time, with the 20-year-old Brazilian having previously started in place of the Argentina striker before breaking his foot.
With both scoring, that decision proved successful but, in truth, the star pair were kept quiet for long periods by Middlesbrough's organised defence, as they badly lacked the service provided by the injured David Silva.
Regardless, it is an experiment Guardiola will be tempted to revisit, with Jesus now having scored four goals in as many Premier League starts for Manchester City.
Aguero's penalty also made him the second-highest goalscorer in City's history, behind left-winger Eric Brook.
'There are still nine points to play for' - manager reaction
Middlesbrough caretaker manager Steve Agnew: "We were disappointed to concede at the end, but I think that the effort and bravery was a credit to the players. That was the fighting spirit that we have shown over the past few weeks.
"From where I was I didn't think that it was a penalty and I thought Sane went down very very easily. I find it strange that the referee can give the penalty from where he is positioned.
"There are still nine points to play for and with the spirit that the team has shown, there is no reason that we can't win more matches."
Manchester City manager Pep Guardiola: "The second half was better than the first one - we had problems trying to control their counter-attacks and we couldn't settle.
"It was tough as Middlesbrough are playing to stay in the league but we dropped another chance to take advantage. It will be tight until the last game because Manchester and Arsenal will be there.
"Gabriel Jesus was out for three months and made only four training sessions, but he's 20 so he could stay on the pitch for 90 minutes and he found himself well."
City extend unwanted away record - match stats
- This draw means that Manchester City have set a new away-points record in a single PL campaign for the club (35 points - W11 D1).
- City have failed to win any of their past 97 Premier League away games that they've been losing at half-time since a win against Blackburn in April 1995 (D12 L85).
- Alvaro Negredo has equalled his Premier League goal tally from his previous season in the competition (9 in 2013-14 with City).
- Indeed, this is the most in a Premier League season by a Boro striker since Mark Viduka (14) and Yakubu (12) in 2006-07.
- Sergio Aguero has bagged 13 goals in his past 14 games for Man City in all competitions, assisting another three.
Middlesbrough face a tough task away to Premier League leaders Chelsea on Monday, 8 May, with kick-off at 20:00 BST.
Manchester City host Crystal Palace at the Etihad on Saturday, 6 May, kicking off at 12:30 BST.
- 2da SilvaBooked at 67mins
- 14de RoonBooked at 68mins
- 34ForshawBooked at 54mins
- 18StuaniBooked at 16minsSubstituted forTraoréat 73'minutes
- 10NegredoSubstituted forGestedeat 82'minutes
- 30OtamendiBooked at 76mins
- 4KompanyBooked at 31mins
- 75GarcíaSubstituted forSanéat 49'minutesBooked at 68mins
- 22ClichySubstituted forSterlingat 50'minutesBooked at 81mins
- 17De Bruyne
- 10AgüeroSubstituted forNolitoat 90+2'minutes
- 33Gabriel Jesus
- Kevin Friend
- Shots on Target
Second Half ends, Middlesbrough 2, Manchester City 2.
Attempt missed. Vincent Kompany (Manchester City) right footed shot from outside the box misses to the left.
Attempt blocked. Nicolás Otamendi (Manchester City) right footed shot from the right side of the box is blocked. Assisted by Kevin De Bruyne with a cross.
Corner, Manchester City. Conceded by George Friend.
Corner, Manchester City. Conceded by Calum Chambers.
Offside, Manchester City. Raheem Sterling tries a through ball, but Sergio Agüero is caught offside.
Substitution, Manchester City. Nolito replaces Sergio Agüero because of an injury.
Attempt missed. Nicolás Otamendi (Manchester City) header from the centre of the box misses to the right. Assisted by Kevin De Bruyne with a cross following a corner.
Corner, Manchester City. Conceded by Calum Chambers.
Foul by Raheem Sterling (Manchester City).
Marten de Roon (Middlesbrough) wins a free kick in the defensive half.
Attempt saved. Rudy Gestede (Middlesbrough) right footed shot from the right side of the box is saved in the centre of the goal. Assisted by Adama Traoré.
Aleksandar Kolarov (Manchester City) wins a free kick in the defensive half.
Foul by Adama Traoré (Middlesbrough).
Goal! Middlesbrough 2, Manchester City 2. Gabriel Jesus (Manchester City) header from the centre of the box to the bottom left corner. Assisted by Sergio Agüero with a cross following a set piece situation.
Leroy Sané (Manchester City) wins a free kick on the left wing.
Foul by Fabio (Middlesbrough).
Attempt saved. Marten de Roon (Middlesbrough) right footed shot from outside the box is saved in the centre of the goal. Assisted by Rudy Gestede.
Corner, Middlesbrough. Conceded by Fernandinho.