Cardiff City returned to the play-off places after two own goals damaged Bristol City's hopes of survival.
The Bluebirds took the lead when Joe Mason's low cross was turned into his own net by Stephen McManus.
Jon Stead equalised early after the break from Richard Foster's accurate cutback before Cardiff goalkeeper David Marshall twice denied the home side.
And with two minutes remaining, Mason's shot deflected in off Kalifa Cisse to give Cardiff a first win in four games.
The result was cruel on relegation-threatened Bristol, who looked the most likely team to grab a late winner in late flourish.
Marshall was at full stretch to save substitute Sean Davis's well controlled 20-yard curler before saving Brett Pitman's effort following a flowing home move.
It was a far cry from the home side's performance in the first half when they looked toothless in rare attacks as Cardiff dominated.
Half chances fell to lone striker Kenny Miller, the first an early half volley and then a driving far-post volley, but both efforts were comfortably saved by home goalkeeper David James.
His opposite number Marshall was equally solid in saving Pitman's shot on the turn near the edge of the box as the first half ended with far greater urgency.
Pearson was then guilty of wasting a glorious opportunity for Bristol when he blasted over from 12 yards, and Cardiff took full advantage by scoring a minute later in first-half stoppage time.
The visitors moved the ball slickly from left to right, eventually finding Mason inside the Bristol City box on the right flank.
He fried a low cross across the face of goal and McManus could only slice the ball into his own net at the front post as he attempted to clear.
Cardiff began the second half with purpose as Aron Gunnarsson forced two fine saves from James within a minute.
But just as the pressure began to build, Bristol equalised with a goal of efficient simplicity.
A long ball down the right flank caught out Cardiff left-back Andrew Taylor allowing Richard Foster to attack the byline.
His low cross fell perfectly into Stead's path and his first-time strike sneaked in between Marshall's legs and the front post.
Marshall then kept Cardiff in the game with two fine saves before another huge slice of luck gave the visitors an unlikely win.
Peter Whittingham found Mason in space on the left side of the Bristol box and his attempted low cross left James stranded as he flicked off Cisse's heel into the net.
- 01 James
- 03 McAllister (Bolasie - 87' )
- 04 Fontaine
- 06 Carey (Adomah - 56' )
- 28 McManus
- 11 Woolford (Davis - 62' )
- 21 Cisse
- 26 Foster
- 37 Pearson Booked
- 09 Stead Booked
- 34 Pitman
- 22 Gerken
- 10 Davis
- 17 Bolasie
- 27 Adomah
- 39 Wood
- 01 Marshall
- 02 McNaughton Booked (Blake - 89' )
- 03 Taylor
- 05 Hudson Booked
- 25 Turner
- 07 Whittingham
- 08 Cowie Booked
- 13 Lawrence (Vuckic - 73' )
- 17 Gunnarsson
- 20 Mason
- 09 Miller (Kiss - 90' )
- 22 Heaton
- 04 Kiss
- 11 Conway
- 19 Vuckic
- 23 Blake
Live Text Commentary
Full Time The referee blows for the end of the match.90:00 +1:44
The ball is delivered by Albert Adomah, David Marshall makes a save.90:00 Substitution
Substitution Filip Kiss is brought on as a substitute for Kenny Miller.88:34 Substitution
Substitution Darcy Blake comes on in place of Kevin McNaughton.86:56
The assist for the goal came from Haris Vuckic.86:56 Goal scored
Goal! - Kalifa Cisse - Bristol C 1 - 2 Cardiff Kalifa Cisse puts the ball into his own net. Bristol City 1-2 Cardiff.85:36 Substitution
Substitution Yannick Bolasie is brought on as a substitute for Jamie McAllister.85:36 Booking
Booking Mark Hudson booked for unsporting behaviour.80:35
Haris Vuckic takes a shot. Blocked by Jamie McAllister. Corner taken by Don Cowie from the left by-line, Stephen McManus manages to make a clearance.79:37
Jon Stead crosses the ball, Brett Pitman takes a shot. David Marshall makes a save.75:14
Andrew Taylor sends in a cross, Stephen McManus manages to make a clearance.74:20
Kenny Miller takes a shot from 6 yards. Save made by David James. Inswinging corner taken left-footed by Peter Whittingham from the right by-line to the near post, clearance by Jon Stead.72:34
Direct free kick taken by Jamie McAllister.72:34 Substitution
Substitution Liam Lawrence leaves the field to be replaced by Haris Vuckic.72:34 Booking
Booking Don Cowie is booked.72:26
Foul by Don Cowie on Albert Adomah, free kick awarded.72:01
The ball is swung over by Albert Adomah, clearance made by Kevin McNaughton.70:30
Foul by Kevin McNaughton on Brett Pitman, free kick awarded. Direct free kick taken by Jamie McAllister.66:40
Sean Davis takes a shot. Save by David Marshall. Corner from the left by-line taken by Jamie McAllister, Stephen McManus has a headed effort at goal from deep inside the area missing to the right of the goal.63:49
Shot by Albert Adomah from just outside the area goes over the net.
Stephen Pearson gives away a free kick for an unfair challenge on Joe Mason. Peter Whittingham crosses the ball in from the free kick, clearance by Stephen McManus.61:11 Substitution
Substitution Martyn Woolford leaves the field to be replaced by Sean Davis.60:13
Aron Gunnarsson delivers the ball, clearance by Richard Foster.56:52
Liam Lawrence produces a cross.56:46
The ball is crossed by Kevin McNaughton, Stephen McManus makes a clearance.54:51
David James takes the indirect free kick.54:51 Substitution
Substitution Albert Adomah replaces Louis Carey.54:51
Kenny Miller is flagged offside by the assistant referee.53:38
The assistant referee signals for offside against Brett Pitman. Direct free kick taken by David Marshall.51:47
The assist for the goal came from Richard Foster.51:47 Goal scored
Goal! - Jon Stead - Bristol C 1 - 1 Cardiff Jon Stead finds the net with a goal from inside the box low into the middle of the goal. Bristol City 1-1 Cardiff.51:16
The official flags Kenny Miller offside. David James takes the indirect free kick.48:01
Aron Gunnarsson takes a shot. David James makes a save. Corner taken left-footed by Peter Whittingham, free kick awarded for a foul by Ben Turner on Liam Fontaine. David James takes the free kick.47:16
The ball is sent over by Richard Foster, save by David Marshall.46:41
Shot by Aron Gunnarsson from 12 yards. Save by David James.45:14
Don Cowie takes a shot. Save by David James.45:01
The second half has started.45:00 +3:49 Half time
Half Time The players leave the pitch at half time.45:00 +2:56
Assist on the goal came from Joe Mason.45:00 +2:56 Goal scored
Goal! - Stephen McManus - Bristol C 0 - 1 Cardiff Own goal by Stephen McManus. Bristol City 0-1 Cardiff.45:00 +1:22
Shot from inside the area by Stephen Pearson clears the bar.43:38
Martyn Woolford crosses the ball.42:03
Don Cowie produces a cross, save made by David James.41:05
The ball is delivered by Don Cowie, clearance made by Martyn Woolford.40:14
Shot from 20 yards by Brett Pitman. David Marshall makes a save.38:41
Free kick awarded for a foul by Mark Hudson on Jon Stead. Free kick crossed left-footed by Jamie McAllister.37:38
Andrew Taylor restarts play with the free kick.37:38 Booking
Booking Stephen Pearson booked for unsporting behaviour.37:26
Unfair challenge on Peter Whittingham by Stephen Pearson results in a free kick.35:00
Liam Lawrence sends in a cross, David James makes a save. Effort on goal by Peter Whittingham from just outside the penalty area goes harmlessly over the target.32:16
Direct free kick taken by David Marshall.32:16 Booking
Booking Jon Stead booked.31:57
Kevin McNaughton fouled by Jon Stead, the ref awards a free kick.29:18
The ball is sent over by Peter Whittingham, David James makes a save.28:24
Effort on goal by Kenny Miller from 12 yards. David James makes a save. Inswinging corner taken by Peter Whittingham, David James makes a save.27:39
Foul by Jon Stead on Kevin McNaughton, free kick awarded. David Marshall takes the direct free kick.26:49
Andrew Taylor sends in a cross, Stephen McManus makes a clearance.25:25
Foul by Brett Pitman on Kevin McNaughton, free kick awarded. Free kick taken by David Marshall.23:54
Martyn Woolford fouled by Mark Hudson, the ref awards a free kick. Brett Pitman crosses the ball from the free kick right-footed from left wing, David Marshall makes a save.19:42
Brett Pitman delivers the ball.19:17
Martyn Woolford crosses the ball, clearance made by Kevin McNaughton. Short corner taken by Brett Pitman.17:45
The referee blows for offside. David James takes the free kick.16:18
Mark Hudson fouled by Martyn Woolford, the ref awards a free kick. Free kick taken by David Marshall.14:10
A cross is delivered by Stephen Pearson, David Marshall makes a save.13:35
Kenny Miller takes a shot. David James makes a save.11:53
Centre by Jon Stead, Martyn Woolford takes a shot. Save by David Marshall.9:32
Free kick crossed left-footed by Jamie McAllister, clearance by Aron Gunnarsson.9:32 Booking
Booking Kevin McNaughton receives a yellow card for unsporting behaviour.9:27
Foul by Kevin McNaughton on Jon Stead, free kick awarded.8:59
The ball is sent over by Aron Gunnarsson, clearance made by Stephen Pearson.6:47
Kenny Miller gives away a free kick for an unfair challenge on Liam Fontaine. Free kick taken by David James.6:07
Jon Stead takes a shot. Save made by David James.5:28
Don Cowie takes a inswinging corner from the left by-line played to the near post, Jon Stead makes a clearance.4:18
Kenny Miller takes the chance to get an effort at goal. Blocked by Stephen Pearson. Inswinging corner taken from the left by-line by Don Cowie, Stephen McManus manages to make a clearance.3:44
Foul by Stephen McManus on Aron Gunnarsson, free kick awarded. Peter Whittingham restarts play with the free kick.1:05
Kenny Miller fouled by Liam Fontaine, the ref awards a free kick. Free kick crossed left-footed by Peter Whittingham from left channel, clearance by Stephen Pearson.0:00
The match gets underway.
Live data and text provided by our data suppliers