Manchester City manager Pep Guardiola has admitted their Champions League qualification bid now hangs in the balance.
But he revealed star striker Sergio Aguero faces tests on Monday that could confirm he will miss the rest of the season. City are hopeful it is just a dead leg.
Defiant Guardiola claimed his side deserved to beat Boro, and now must come out on top when Crystal Palace, Leicester and West Brom visit before a season-ending trip to Watford.
City fought back from behind twice to claim a point and Guardiola said: “Fortunate? I don’t think so. We deserved to win. Definitely. Second half, we made absolutely everything happen.
“They were over our line twice.
“We were much better in the second half.”
Asked about finishing in the top four, Guardiola said: “We will try until the last game at Watford.
“You come here, they are fighting to survive. These are the most difficult teams.
“The next three games will determine whether we deserve to be in the Champions League.
“Today was our chance to challenge for third position. Today we dropped that chance [Liverpool stay third on goals scored and can move three points above City, having played a game more, by beating Watford on Monday]. We have to win games.
“A good result is winning but what happened, going behind twice, we turned the game twice. I am satisfied about that.”
It was a brave, intense Boro performance and one that had City rattled. The home side worked hard, counter-attacked with pace and showed their mettle.
City were disjointed in the first half, Guardiola experimenting with wing-backs, and initially lacking energy and spice.
Former City striker Alvaro Negredo, who scored a quickfire nine goals for them before they started to dry up, excelled against his old club and took his total for Boro to nine with the opener.
Stewart Downing, who also had a terrific game, broke down the left and pulled across the edge of the box, Negredo swivelled and scuffed a shot off his standing leg that looped in.
It took a controversial penalty to get the lacklustre visitors level.
Leroy Sane burst into the box and appeared to run into Marten de Roon, rather than be fouled by him. He went to ground and referee Kevin Friend blew for a spot-kick.
De Roon and Fabio were booked for their protests and Sane for his part in a shoving match.
Aguero kept his cool during the delay in play and slotted away the penalty to equal his club record of scoring in five consecutive away games, in his 250th appearance for them.
Middlesbrough kicked on in a breathlessly competitive performance.
Downing fired in a free-kick which was half-cleared allowing Negredo to slash across goal. Defender Calum Chambers, on loan from Arsenal, stabbed home.
A win would have kept Boro’s survival hopes alive. However they moved from slim, to highly unlikely in the 85th minute.
Gabriel Jesus was City’s saviour, leaping above Ben Gibson and George Friend to head home Aguero’s perfect assist.
It wasn’t the best from City, who look a long way from the flowing possession game Guardiola wants. But they are hanging in there to clinch a top-four place which is all-important to his rebuilding job.