Match ends, Blackburn Rovers 1, Bristol City 1.
Blackburn Rovers came from behind to earn a crucial draw against fellow Championship strugglers Bristol City.
Sam Gallagher's powerful header back across goal ensured Rovers, who remain in the relegation zone, are still two points from safety with three to play.
Tammy Abraham's 22nd goal of the season, an exquisite finish past David Raya, had earlier put City in front.
Abraham, Matty Taylor and Josh Brownhill all wasted chances to make it 2-0 before Rovers rescued a point.
On-loan Chelsea striker Abraham, 19, was arguably most guilty, shooting straight at the goalkeeper when through on goal as the Robins created a host of great opportunities prior to Gallagher's equaliser.
Bristol City remain four points above the relegation zone, with fixtures against Barnsley, Brighton and Birmingham remaining.
They could have all but sealed their Championship survival during a dominant first 70 minutes at Ewood Park, but were unable to hold on for a third successive win.
Blackburn face Wolves, Aston Villa and Brentford in their final three matches of the season.
Blackburn manager Tony Mowbray:
"The frustration was the goal we let in really. We ultimately tried to play offside and it was a really sloppy decision from us.
"And yet the story of the game was the changes we made, the way the team clawed their way back into the game and then, for us, ultimately a penalty decision that wasn't given, that having watched it back looks a clear penalty kick.
"In an ideal world it would have been a day where we didn't play particularly well, but came away with three points. Ultimately we've come away with one. On a day that (Nottingham) Forest lost and Birmingham lost, it's a point we have to put in the bag."
Bristol City boss Lee Johnson:
"I thought it was outstanding, our performance today. My only criticism really is we should have put it to bed. We have to make sure we're more clinical with our chances because we created numerous ones.
"I thought the goal was outstanding, I think it was 31 passes that led to the goal, so my analyst tells me. It shows that we have a bright young side that has to do a job this year and then we can kick on."
- 24NyambeSubstituted forConwayat 45'minutes
- 15WardSubstituted forEmnesat 67'minutes
- 5WilliamsBooked at 54mins
- 7FeeneySubstituted forLucas Joãoat 45'minutes
- 31BennettBooked at 22mins
- 18Lucas João
- 2LittleSubstituted forCotterillat 77'minutesBooked at 86mins
- 42WrightBooked at 49mins
- 3BryanBooked at 81mins
- 20PatersonSubstituted forO'Dowdaat 74'minutes
- 12TaylorSubstituted forWilbrahamat 85'minutes
- Mike Jones
- Shots on Target
Second Half ends, Blackburn Rovers 1, Bristol City 1.
Delay over. They are ready to continue.
Delay in match Aaron Wilbraham (Bristol City) because of an injury.
Attempt blocked. Hope Akpan (Blackburn Rovers) right footed shot from the centre of the box is blocked. Assisted by Connor Mahoney.
Corner, Bristol City. Conceded by Elliott Bennett.
Delay over. They are ready to continue.
Delay in match Josh Brownhill (Bristol City) because of an injury.
David Cotterill (Bristol City) is shown the yellow card.
Substitution, Bristol City. Aaron Wilbraham replaces Matty Taylor.
Corner, Blackburn Rovers. Conceded by Joe Bryan.
Joe Bryan (Bristol City) is shown the yellow card for a bad foul.
Connor Mahoney (Blackburn Rovers) wins a free kick in the attacking half.
Foul by Joe Bryan (Bristol City).
Attempt missed. Tommie Hoban (Blackburn Rovers) header from the centre of the box misses to the right. Assisted by Craig Conway with a cross following a corner.
Corner, Blackburn Rovers. Conceded by Josh Brownhill.
Corner, Blackburn Rovers. Conceded by Bailey Wright.
Attempt saved. Sam Gallagher (Blackburn Rovers) right footed shot from the centre of the box is saved in the centre of the goal. Assisted by Lucas João.
Attempt missed. Jason Lowe (Blackburn Rovers) right footed shot from outside the box is close, but misses to the left.
Substitution, Bristol City. David Cotterill replaces Mark Little.