Middlesbrough’s promotion hopes suffered a blow after they were controversially denied victory at Birmingham.
Boro drew at St Andrew’s to move top of the Championship by a point, but they were left fuming after Daniel Ayala’s ‘goal’ was wrongly ruled out.
The defender netted in the second half, but it was disallowed for offside with the scores locked at 2-2, despite the centre-back clearly being onside.
Jordan Rhodes and Gaston Ramirez had given the visitors the lead after Stephen Gleeson’s opener.
But David Davis’s fine strike earned Birmingham an entertaining draw.
Boro’s future is still in their own hands as they face Brighton on the final day with the Seagulls a point behind in third and a win would end their seven-year exile from the Premier League.
But they face an anxious wait until Monday when third-placed Brighton host Derby and Burnley, who sit second, welcome QPR.
All three started yesterday on 87 points and Boro will count the cost of missed chances and an official’s flag.
It took until the the 25th minute for them to carve an opening out - and it was a glorious one which Rhodes should have taken.
Birmingham struck first after 33 minutes. Loanee Ritchie De Laet – who will earn a Premier League winners’ medal if Leicester win the title – could only clear as far as Gleeson.
The midfielder was then given too much time to steady himself and while Dimi Konstantopoulos got a hand to his 25-yard drive, he could not keep it out.
Boro hit back almost immediately when Adam Legzdins thwarted Albert Adomah, but the goalkeeper then undid all his fine work with a massive gaffe five minutes before the break.
The visitors were awarded a free kick 25-yards out and Legzdins spilled Ramirez’s strike straight to Rhodes, who bundled in from four yards.
The chances continued to flow after the break as Ryan Shotton’s header dropped just wide before Boro missed three golden chances in the space of 10 seconds.
First, Rhodes volleyed Grant Leadbitter’s free-kick against a post, only to then block Adomah’s follow-up and see Ramirez sky a third attempt over the bar.
But Boro finally took the lead after 57 minutes. Adomah’s deep cross found Rhodes peeling off at the far post and his header across goal was met by Ramirez to nod in from barely a yard.
Back came Birmingham though and Davis levelled 11 minutes later with a brilliant half volley from the edge of the area.
An enthralling game continued to spark within 90 seconds when Ayala had a ‘goal’ controversially ruled out. The defender had ambled forward and curled into the far corner from 12 yards only for his strike to be wrongly disallowed for offside.
Birmingham: Legzdins, Caddis (Spector 90), Morrison, Shotton, Grounds, Gleeson, Kieftenbeld, Cotterill, Fabbrini (Robinson 79), Davis (Solomon-Otabor 86), Donaldson. Unused substitutes: Vaughan, Lafferty, Trueman, Buckley.
Middlesbrough: Konstantopoulos, Nsue, Ayala, Gibson, De Laet, Clayton, Leadbitter, Adomah, Ramirez, Downing (Stuani 85), Rhodes (Nugent 87). Unused substitutes: De Sart, Husband, Agazzi, Kalas, Forshaw.
Referee: Simon Hooper (Wiltshire).