Matt Crooks fired a 64th-minute equaliser as Middlesbrough came back from two goals down to earn a 2-2 draw with Bristol City in a Sky Bet Championship thriller at Ashton Gate.
The hosts took the lead in first-half stoppage time. Boro failed to deal with a build-up down the right and Harry Cornick’s pass across the edge of the box found Sam Bell racing in from the left to shoot low past Zack Steffen.
Cornick doubled the advantage four minutes into the second half, left with a simple tap in from a Nahki Wells cross after Steffen had stretched to parry a Bell shot.
Boro replied on 58 minutes, Aaron Ramsey netting with a diving header from a Tommy Smith cross.
Six minutes later the visitors were level. Crooks collected a Ramsey pass unmarked inside the box and coolly shot low past Max O’Leary from 10 yards.
Both teams showed two changes from their previous fixture, City bringing in Cornick and Andy King for Tommy Conway and Omar Taylor-Clarke, while Boro included Marcus Forss and Crooks instead of Riley McGree and Cameron Archer.
City were first to threaten on four minutes when Bell’s cross found Cornick, who twice had shots charged down by Boro defenders.
The visitors should have gone in front on eight minutes when Ryan Giles broke down the left and crossed for Chuba Akpom, whose header flashed the wrong side of a post.
Andreas Weimann was denied by a brave Steffen save on 15 minutes when Boro were caught playing out from the back.
Giles fired over and Crooks just failed to get on the end of a Forss cross as the visitors built some promising attacks.
Crooks headed over from a Boro corner on 35 minutes and it seemed the half would end goalless before Bell struck, one minute of injury time having just been announced.
Wells tested Steffen with a well-struck free-kick from a narrow angle at the start of the second half and home fans were soon in celebration mood as Cornick made it 2-0.
But Boro’s large contingent of travelling supporters had their spirits raised by Ramsey’s quick riposte and turned up the volume further when Crooks fired the equaliser.
Both managers made changes as the two teams went all out for a winner.
City came close on 84 minutes when Weimann headed just wide from substitute Anis Mehmeti’s cross. Then Zak Vyner volleyed over from close range.
At the other end O’Leary saved well from McGree and another Boro substitute Archer had a goal ruled out by an offside flag at the end of a rousing contest neither side deserved to lose.