Birmingham City bounced back from the pain of last week's successive 3-2 defeats to win their own St Andrew's Day five-goal thriller.
Marlon King hit the winner, his second of the night, in the 81st minute, as Lee Clark's men twice came from behind to beat high-flying Middlesbrough.
King's first-half penalty cancelled out Grant Leadbitter's early header.
Scott McDonald fired 'Boro back in front, but Wade Elliott volleyed home before King raced clear to win it.
Victory would have moved Tony Mowbray's side up to second, but their chance to close the gap on Cardiff and Crystal Palace in first and second evaporated as the hosts finished the stronger of the two sides.
It took 14 minutes to trigger the first noteworthy moment of the game - 'Boro's opening goal.
- Charlie Austin (Burnley) 18 goals
- Glenn Murray (Crystal Palace) 15
- Jordan Rhodes (Blackburn) 12
- Marlon King (Birmingham) 12
From Halliday's left-wing cross, Leadbitter timed his near-post run to perfection and powered goalwards a bullet header which Jack Butland got his right arm to it but could not keep out.
'Boro were close to doubling their lead when, from Justin Hoyte's right-wing cross, Lukas Jutkiewicz scorched another header just over.
And the visitors also had a strong penalty shout for Pablo Ibanez's clumsy trip on Scott McDonald.
But the Blues went close themselves when Nikola Zigic set up King in space on the left edge of the 'Boro box.
Keeper Jason Steele touched his carefully-placed right-foot shot onto the outside of his left post, Blues being doubly punished when referee Roger East awarded a goal-kick. But the home side's luck was in on the stroke of half-time when they won a penalty.
King fell to earth after making contact with Bikey's thigh and, from the resulting spotkick, the Blues' top scorer struck his fifth successful penalty of the season.
'Boro were back in front on 62 minutes when Seb Hines' headed flick-on caused such confusion between the stricken Ibanez and the stranded Butland that McDonald was able to nip in and fire his eighth goal of the campaign.
But this time the lead lasted just four minutes before half-time sub Wade Elliott volleyed Blues level.
Elliott's dipping effort was well-struck enough, but it was within reach of Steele, who would have been disappointed to have conceded it.
Steele redeemed himself by then parrying Jonathan Spector's fierce left-foot shot for a corner.
But Blues top scorer King won the three points when he drilled his low right-foot shot just inside Steele's right post for his 13th goal of the campaign.
And, while it was a second successive away defeat for 'Boro, for Blues, following Tuesday night's 1-1 draw at Blackpool, victory made it four points out of a possible six.
Live Text Commentary
Full Time The referee ends the match.90:00 +3:03
Peter Lovenkrands takes a shot. Jason Steele makes a save.90:00 +0:20
Outswinging corner taken right-footed by Grant Leadbitter played to the near post, clearance by Wade Elliott.88:41
Christopher Burke gives away a free kick for an unfair challenge on Andrew Halliday. Shot on goal comes in from Grant Leadbitter from the free kick.86:32
Centre by Justin Hoyte. Andrew Halliday is penalised for handball and concedes a free kick. Jack Butland restarts play with the free kick.85:48
Andrew Halliday sends in a cross, clearance made by Paul Robinson.84:20
Scott McDonald is flagged offside by the assistant referee. Jack Butland restarts play with the free kick.83:49
Justin Hoyte produces a cross.83:31
Free kick awarded for an unfair challenge on Seb Hines by Peter Lovenkrands. Andre Bikey restarts play with the free kick.82:50
Richard Smallwood crosses the ball. Scott McDonald is flagged offside by the assistant referee. Jack Butland takes the indirect free kick.81:55
Jack Butland takes the indirect free kick.81:55 Substitution
Substitution Merouane Zemmama is brought on as a substitute for Josh McEachran.81:55
Scott McDonald is ruled offside.80:49
Peter Lovenkrands provided the assist for the goal.80:49 Goal scored
Goal! - Marlon King - Birmingham 3 - 2 Middlesbro Marlon King gets on the score sheet with a goal from the edge of the penalty box to the bottom left corner of the goal. Birmingham 3-2 Middlesbrough.80:12
The ball is crossed by Christopher Burke, Seb Hines manages to make a clearance.79:10
The assistant referee signals for offside against Christopher Burke. Jason Steele takes the free kick.78:03
Foul by Paul Caddis on Scott McDonald, free kick awarded. Direct free kick taken by Nicky Bailey.77:36
Christopher Burke sends in a cross, Jason Steele makes a save.76:46
Christopher Burke delivers the ball, Andre Bikey manages to make a clearance.
Substitution Peter Lovenkrands on for Nikola Zigic.74:11
Unfair challenge on Josh McEachran by Nikola Zigic results in a free kick. Free kick taken by Nicky Bailey.73:57
Christopher Burke crosses the ball, clearance made by Andre Bikey.73:02
Scott McDonald takes a shot. Save made by Jack Butland.71:36
The assistant referee flags for offside against Scott McDonald. Jack Butland restarts play with the free kick.70:11
Wade Elliott restarts play with the free kick.70:11 Booking
Booking Andrew Halliday goes into the referee's book for unsporting behaviour.69:54
Foul by Andrew Halliday on Christopher Burke, free kick awarded.68:09
Indirect free kick taken by Jack Butland.68:09 Substitution
Substitution Christopher Burke replaces Robert Hall.68:09
The assistant referee flags for offside against Scott McDonald.66:45 Substitution
Substitution Richard Smallwood is brought on as a substitute for Emmanuel Ledesma.66:45 Substitution
Substitution Ishmael Miller is brought on as a substitute for Lukas Jutkiewicz.65:58 Goal scored
Goal! - Wade Elliott - Birmingham 2 - 2 Middlesbro Wade Elliott finds the back of the net with a goal from long range to the top left corner of the goal. Birmingham 2-2 Middlesbrough.65:01
Wade Elliott takes a shot. Blocked by Seb Hines. Inswinging corner taken by Wade Elliott, clearance by Nicky Bailey.64:31
Emmanuel Ledesma delivers the ball, clearance by Paul Caddis.63:44
The ball is sent over by Wade Elliott, save by Jason Steele.63:25
Corner from the right by-line taken by Wade Elliott, clearance made by Seb Hines.63:01
Jonathan Spector takes a shot. Jason Steele makes a save.61:35 Goal scored
Goal! - Scott McDonald - Birmingham 1 - 2 Middlesbro Scott McDonald grabs a goal from close in to the bottom right corner of the goal. Birmingham 1-2 Middlesbrough.61:34
Seb Hines provided the assist for the goal.60:39
Pablo Ibanez concedes a free kick for a foul on Scott McDonald. Emmanuel Ledesma takes the direct free kick.59:38
Corner taken by Wade Elliott from the right by-line.59:22
Robert Hall takes a shot. Andre Bikey gets a block in.58:49
Unfair challenge on Pablo Ibanez by Lukas Jutkiewicz results in a free kick. Jack Butland takes the direct free kick.58:13
Shot from just outside the area by Scott McDonald misses to the right of the target.57:29
Josh McEachran gives away a free kick for an unfair challenge on Paul Robinson. Free kick taken by Paul Robinson.56:37
Emmanuel Ledesma has an effort at goal from outside the box which goes wide right of the goal.54:59
Paul Caddis produces a cross, Seb Hines manages to make a clearance.54:20
Shot from long distance by Grant Leadbitter misses to the right of the goal.53:37
Scott McDonald takes a shot. Save by Jack Butland.52:45
Scott McDonald challenges Paul Robinson unfairly and gives away a free kick. Free kick taken by Jack Butland.50:38
The official flags Robert Hall offside. Indirect free kick taken by Jason Steele.50:07
Nicky Bailey concedes a free kick for a foul on Robert Hall. Wade Elliott takes the free kick.46:22
The ball is crossed by Paul Caddis, clearance by Andre Bikey.45:55
Scott McDonald challenges Curtis Davies unfairly and gives away a free kick. Free kick taken by Pablo Ibanez.45:01
The referee blows his whistle to start the second half.45:01 Substitution
Substitution Wade Elliott is brought on as a substitute for Ravel Morrison.45:00 +2:53 Half time
Half Time The half-time whistle blows.45:00 +2:24 Goal scored
Goal! - Marlon King - Birmingham 1 - 1 Middlesbro Marlon King scores a placed penalty. Birmingham 1-1 Middlesbrough.45:00 +1:28
Penalty awarded for an unfair challenge on Marlon King by Andre Bikey.45:00 +1:18
The ball is delivered by Paul Caddis, clearance made by Nicky Bailey.44:55
Direct strike on goal from the free kick comes in from Emmanuel Ledesma.44:55 Booking
Booking Paul Robinson is booked.44:42
Unfair challenge on Lukas Jutkiewicz by Paul Robinson results in a free kick.42:27
Lukas Jutkiewicz fouled by Pablo Ibanez, the ref awards a free kick. Direct free kick taken by Seb Hines.41:56
Grant Leadbitter is caught offside. Indirect free kick taken by Jack Butland.41:13
The ball is swung over by Paul Caddis, clearance made by Seb Hines.40:25
A cross is delivered by Jonathan Spector, Seb Hines manages to make a clearance.39:24
The ball is crossed by Lukas Jutkiewicz, save made by Jack Butland.37:32
Free kick awarded for a foul by Pablo Ibanez on Lukas Jutkiewicz. Grant Leadbitter takes the direct free kick.35:52
Free kick awarded for a foul by Andre Bikey on Curtis Davies. Direct free kick taken by Jack Butland.35:27
Corner taken left-footed by Emmanuel Ledesma.34:59
Emmanuel Ledesma takes a shot. Save made by Jack Butland.33:45
The ball is sent over by Robert Hall, save by Jason Steele.32:33
Free kick awarded for an unfair challenge on Jonathan Spector by Grant Leadbitter. Ravel Morrison restarts play with the free kick.31:11
Corner taken by Emmanuel Ledesma from the right by-line played to the near post.27:50
Pablo Ibanez gives away a free kick for an unfair challenge on Emmanuel Ledesma. Direct strike on goal from the free kick comes in from Emmanuel Ledesma, Jack Butland makes a save.26:56
The ball is delivered by Ravel Morrison, Marlon King has a headed effort at goal from close range which goes wide of the left-hand upright.24:34
Header from deep inside the area by Lukas Jutkiewicz goes over the bar.23:58
Free kick awarded for an unfair challenge on Josh McEachran by Nikola Zigic. Direct free kick taken by Grant Leadbitter.22:41
Marlon King takes a shot. Save by Jason Steele.20:44
Justin Hoyte crosses the ball, Lukas Jutkiewicz has a header from deep inside the six-yard box and clears the crossbar.20:06
Unfair challenge on Andrew Halliday by Jonathan Spector results in a free kick. Andrew Halliday takes the direct free kick.19:40
Hayden Mullins challenges Grant Leadbitter unfairly and gives away a free kick. Josh McEachran restarts play with the free kick.19:17
Ravel Morrison takes a shot. Blocked by Seb Hines.19:05
Paul Caddis sends in a cross.17:38
Paul Robinson sends in a cross, Headed effort from deep inside the penalty area by Jonathan Spector goes harmlessly over the crossbar.17:03
Seb Hines challenges Hayden Mullins unfairly and gives away a free kick. Robert Hall restarts play with the free kick.14:42
Emmanuel Ledesma gives away a free kick for an unfair challenge on Robert Hall. Robert Hall delivers the ball from the free kick left-footed from left wing.13:47
Andrew Halliday provided the assist for the goal.13:47 Goal scored
Goal! - Grant Leadbitter - Birmingham 0 - 1 Middlesbro Grant Leadbitter scores a headed goal from close in. Birmingham 0-1 Middlesbrough.13:44
A cross is delivered by Andrew Halliday,8:31
Justin Hoyte crosses the ball, clearance by Pablo Ibanez. Foul by Andrew Halliday on Jonathan Spector, free kick awarded. Jack Butland takes the direct free kick.6:51
The official flags Scott McDonald offside. Indirect free kick taken by Jack Butland.5:47
The ball is sent over by Andrew Halliday.4:34
Free kick awarded for a foul by Emmanuel Ledesma on Robert Hall. The ball is delivered by Robert Hall, Header by Nikola Zigic from deep inside the penalty area misses to the left of the goal.3:05
The ball is swung over by Andrew Halliday, save made by Jack Butland.0:00
The referee starts the match.
Live data and text provided by our data suppliers