Match ends, Bristol City 1, Nottingham Forest 2.
Lyle Taylor scored twice in injury time as Nottingham Forest stunned Bristol City and maintained their upward curve under new boss Steve Cooper.
Teenager Alex Scott's first senior goal looked to have earned City a first home win since January 26.
But Taylor levelled from the spot early in stoppage time after Nathan Baker felled Forest's Djed Spence.
And yet more drama followed as Taylor, unmarked at the back post, tapped in a loose ball to snatch an unlikely victory and extend the Robins' winless run at Ashton Gate to 17 matches.
- Listen to BBC Radio Nottingham commentary on Forest's goals
- Relive Tuesday's EFL action
- Latest Championship table
It left those in the stadium bewildered bar the delighted Forest fans in the Atyeo Stand, who did not have much to celebrate before Cooper's arrival last month.
However they have now won four and drawn one of the former Swansea manager's five games in charge.
Bristol City had the first big chance when Scott slotted wide with the goal at his mercy, though Forest went close when Brennan Johnson's low left-footed shot came back off the post.
Scott made amends for his earlier miss to give the hosts the lead, pouncing on the rebound after Forest keeper Brice Samba had saved Nahki Wells' shot.
Wells then saw Samba tip his shot on to the post - and that was to prove a key intervention.
Forest turned the game on its head with Taylor's late double, the winner coming after Joe Lolley's effort had been parried by Bristol City keeper Dan Bentley.
Bristol City manager Nigel Pearson told BBC Radio Bristol:
"We've thrown away a very good situation. For the most part, I think we played okay.
"I thought in the first half in particular we were very good at stopping them from playing and played some good stuff ourselves.
"In the second half, we didn't get hold of the ball in the way we needed to. We were very wasteful.
"If we had drawn the game, I would still have been very disappointed. But a 2-1 defeat is really quite tough."
Nottingham Forest boss Steve Cooper:
"It was a great team effort and a great example of never giving up.
"It is still early days and there are things to work on. Our final ball could have been better and we won't overlook that.
"But the spirit about the squad was there for all to see and it was a great result for us.
"An away point is never a bad result in the Championship, but we were never going to settle for that."
- 36ScottBooked at 66minsSubstituted forPalmerat 77'minutes
- 9MartinSubstituted forMassengoat 66'minutes
- 21WellsSubstituted forO'Dowdaat 83'minutes
- 3FigueiredoSubstituted forMightenat 66'minutes
- 11ZinckernagelSubstituted forLolleyat 77'minutes
- 7GrabbanSubstituted forTaylorat 81'minutes
- Steve Martin
- Shots on Target
Second Half ends, Bristol City 1, Nottingham Forest 2.
Foul by Lyle Taylor (Nottingham Forest).
Nathan Baker (Bristol City) wins a free kick in the defensive half.
Goal! Bristol City 1, Nottingham Forest 2. Lyle Taylor (Nottingham Forest) right footed shot from very close range to the bottom right corner.
Attempt saved. Joe Lolley (Nottingham Forest) right footed shot from the left side of the box is saved in the bottom right corner. Assisted by Alex Mighten.
Goal! Bristol City 1, Nottingham Forest 1. Lyle Taylor (Nottingham Forest) converts the penalty with a right footed shot to the bottom left corner.
Penalty Nottingham Forest. Djed Spence draws a foul in the penalty area.
Penalty conceded by Nathan Baker (Bristol City) after a foul in the penalty area.
Corner, Nottingham Forest. Conceded by George Tanner.
Offside, Bristol City. Andreas Weimann tries a through ball, but Kasey Palmer is caught offside.
Attempt saved. Lyle Taylor (Nottingham Forest) left footed shot from the centre of the box is saved in the centre of the goal. Assisted by James Garner.
Substitution, Bristol City. Callum O'Dowda replaces Nahki Wells.
Substitution, Nottingham Forest. Lyle Taylor replaces Lewis Grabban.
Attempt missed. Joe Lolley (Nottingham Forest) left footed shot from outside the box misses to the left. Assisted by James Garner.
Substitution, Bristol City. Kasey Palmer replaces Alex Scott.
Substitution, Nottingham Forest. Joe Lolley replaces Philip Zinckernagel.
Foul by Philip Zinckernagel (Nottingham Forest).
Alex Scott (Bristol City) wins a free kick in the attacking half.
Attempt blocked. Andreas Weimann (Bristol City) right footed shot from the right side of the box is blocked. Assisted by Matty James with a cross.