Gabriel Jesus scored with an 85th-minute header to claim a 2-2 draw for Manchester City at the Riverside Stadium.
He rose highest to head home Sergio Aguero's cross just eight minutes after Calum Chambers had given Middlesbrough a 2-1 lead when he pounced on a loose ball in the area.
Middlesbrough's former Man City striker, Alvaro Negredo, put the home side ahead on 38 minutes with a shot that went in off the post.
City made it 1-1 on 69 minutes, Sergio Aguero scoring from the penalty spot after Leroy Sane was fouled by Marten de Roon.
The result leaves fourth-placed City level on points with Liverpool in third while Middlesbrough remain in 19th place, six points from safety with three matches left to play.