Chris Burke celebrates his goal with Michael Chopra
Cardiff City ended their 52-year league Hawthorns hoodoo in controversy to beat second-placed West Brom to go third.
Chris Burke's second goal in successive games gave Cardiff an 18th minute lead as his left-foot shot flew past Albion stopper Scott Carson.
And Cardiff completed a superb victory when captain Carson was dismissed for a head-butt on Michael Chopra late on.
Referee Paul Taylor then awarded the Bluebirds a penalty which Peter Whittingham scored from the rebound.
Replacement goalkeeper Dean Kiely's first touch was to save Whittingham's weak left-footed penalty diving to his right but the former England under-21 international kept his composure to slide home the rebound.
The defeat was a blow to Albion's promotion hopes and was West Bromwich Albion's first defeat in seven games since Cardiff's Welsh rivals Swansea won here on 20 October.
Roberto Di Matteo's men - looking to close the gap on leaders Newcastle to one point - were furious official Taylor sent England international Carson off for the second time in his career.
Chopra had clipped Albion skipper Carson when the Cardiff striker attempted to convert Burke's 82nd minute cross but the former Liverpool and Aston Villa stopper planted his head into Chopra's face when the ball had been cleared.
Marek Cech was sacrificed by Baggies boss Di Matteo so Kiely could come on after Carson's moment of madness but to add insult to injury for West Brom, Taylor awarded the spot-kick to the amazement of the home side.
Whittingham, at the second attempt, converted his 14th goal of the season in all competitions to move him to the top of the Championship's top-scorers list as Cardiff celebrated their first win at the Hawthorns in the league since February 1957.
The battle of the division's two top-scorers lived up to its billing as after Graham Dorrans' early 30-yard strike - saved by Cardiff keeper David Marshall - Roman Bednar should have given West Brom an early lead.
Dorrans beat Paul Quinn and the Scottish left-winger's cross eluded the statuesque visiting defence but Bednar, with just the keeper to beat, could not control and convert before a sprawling Marshall smothered the Czech striker's weak effort from a difficult angle.
Within 60 seconds it was Carson keeping his team level as the England international tipped Gavin Rae's rising left-foot 20-yard drive over after Paul Quinn's right-wing cross was not cleared.
Michael Chopra reels after an alleged head-butt by Scott Carson
But Carson was helpless to stop Burke's fourth goal of the season in the 18th minute after the Scottish winger clinically finished a sweeping Cardiff counter attack.
Burke dashed onto Kelvin Etuhu's flick on the half-way line and the Baggies backline were punished for not closing down him down as the man who celebrated his 26th birthday last week fired a low 20-yard low left-footed shot into the net.
Cardiff's lead was deserved for their endeavour and work-rate against a serious promotion contender but Burke's opener was a wake-up call for Albion as the Baggies began to crank up the pressure.
And it was only Anthony Gerrard's bravery that came between Bednar and a clear chance as the Bluebirds centre-back dived in to incept a pass bound for the West Brom hitman.
Albion, though, were fortunate not to be reduced to ten men earlier in the match as Gonzalo Jara appeared to elbow Gavin Rae in the final minute of the first-half but official Taylor only punished the Chilean midfielder with a caution.
In the opening minutes of the second-half, Marshall had a taste of things to come as the Scottish international had to be at his best to keep out Bednar as he looked set to score his fourth of the season.
The relentless Albion attacks opened up the Cardiff defence again just before the hour as Bednar's presence created an opening for Dorrans but with a clear sight of goal and from 15 yards out, the Scotsman skewed his left-foot shot wide.
West Brom were camped in the Bluebirds half as Chris Brunt and Bednar again went close before counter-attacking Cardiff - the Championship's second highest-scorers - completed a battling smash-and-grab win amid the late drama.
Whittingham remained cool - when commotion reigned all around him - to complete a remarkable win that was credit to Cardiff's heroic defence as much as Whittingham's nerve.
West Brom will undoubtedly rise again while Cardiff's first season's win over one of the Championship's top six sides will be a morale-booster ahead of games against fellow play-off hopefuls Middlesbrough and Leicester City.
West Brom boss Roberto Di Matteo: "Personally I have not seen what happened, the game was being developed in the middle of the pitch.
"It's disappointing, he's [Scott Carson] going to be suspended now for three games.
"I haven't spoke to him about it yet, I need to see first what happened. Then I will have a conversation with him."
Asked whether club discipline could be on the cards, he replied: "That's too early to decide now, I need to find out what happened exactly."
Cardiff boss Dave Jones: "I felt our first-half performance was superb. We could have come in two or three up and I don't think West Brom would have had any complaints.
Jones praises battling Bluebirds
"Second half, a lot of tired bodies out there. We limited them to long-range shooting and crossing from deep.
"So the whole back five did the job. We didn't allow them to get around the back of us and we made them hit long balls and two centre-halves gobbled everything up.
"But as a rearguard action it was superb and I think we frightened them as well because they couldn't get everybody going forward because they knew that we could break on them."
Live text and stats
Tuesday, 8 December 2009
19 Carson red card
03 Olsson yellow card
04 Cech (Kiely 83)
21 Mulumbu (Filipe Teixeira 36)
36 Jara yellow card
20 Filipe Teixeira,
02 McNaughton (Kennedy 84)
07 Whittingham yellow card
19 Scimeca (Wildig 46)
08 Chopra yellow card
17 Etuhu (McCormack 58)
Ref: TaylorAtt: 20,742
Attempts on target
Attempts off target
90:00+3:43 The match has reached full-time.
90:00+3:20 Chris Brunt delivers the ball.
90:00+2:37 A cross is delivered by Simon Cox.
90:00+2:05 Abdoulaye Meite produces a cross, clearance made by Mark Hudson.
90:00+0:50 Booking Michael Chopra is booked.
90:00+0:34 Chris Brunt takes the free kick.
89:12 Chris Brunt sends in a cross, Mark Hudson makes a clearance.
88:46 A cross is delivered by Graham Dorrans, save made by David Marshall.
88:39 Centre by Gianni Zuiverloon, Mark Hudson manages to make a clearance.
88:04 Peter Whittingham takes the free kick.
88:04 Booking Caution for Jonas Olsson.
87:59 Jonas Olsson concedes a free kick for a foul on Peter Whittingham.
84:35 GOAL - Peter Whittingham:West Brom 0 - 2 Cardiff Peter Whittingham gets on the score sheet with a goal from close in to the bottom left corner of the goal. West Brom 0-2 Cardiff.
81:51 A save by Dean Kiely from penalty by Peter Whittingham. West Brom 0-1 Cardiff.
81:51 Substitution Mark Kennedy on for Kevin McNaughton.
81:51 Substitution Dean Kiely comes on in place of Marek Cech.
81:51 Sent off The referee red cards Scott Carson for violent conduct.
81:08 Penalty awarded for a foul by Scott Carson on Michael Chopra.
80:47 A cross is delivered by Chris Burke, save by Scott Carson.
80:11 A cross is delivered by Graham Dorrans, save by David Marshall.
78:58 Unfair challenge on Aaron Wildig by Gonzalo Jara results in a free kick. Kevin McNaughton takes the free kick.
78:15 Gonzalo Jara takes a shot from long distance which goes wide of the right-hand upright.
77:37 Graham Dorrans takes a inswinging corner from the left by-line to the near post, David Marshall manages to make a clearance.
76:59 Gianni Zuiverloon delivers the ball, clearance by Mark Hudson.
75:40 The referee blows for offside against Michael Chopra. Indirect free kick taken by Scott Carson.
74:42 Graham Dorrans crosses the ball.
73:43 Marek Cech produces a cross, clearance made by Aaron Wildig.
73:24 Graham Dorrans sends in a cross, clearance made by Mark Hudson.
72:53 The official flags Peter Whittingham offside. Scott Carson takes the free kick.
Correction - 71:40 The ball is sent over by Gianni Zuiverloon.
71:40 Gianni Zuiverloon produces a cross.
70:12 Corner taken right-footed by Graham Dorrans, save by David Marshall.
70:03 The ball is crossed by Chris Brunt, clearance made by Mark Hudson.
69:34 Chris Brunt takes the inswinging corner, clearance made by Anthony Gerrard.
67:56 A cross is delivered by Chris Brunt, save by David Marshall.
67:14 Shot from outside the penalty box by Chris Brunt goes wide right of the goal.
65:05 Shot from just outside the box by Marek Cech goes over the bar.
64:01 Free kick awarded for an unfair challenge on Gonzalo Jara by Gavin Rae. Free kick taken by Gonzalo Jara.
62:22 Handball decision goes against Kevin McNaughton. Shot comes in from Chris Brunt from the free kick.
61:59 Paul Quinn delivers the ball, save by Scott Carson.
60:53 Filipe Teixeira challenges Kevin McNaughton unfairly and gives away a free kick. Direct free kick taken by David Marshall.
58:00 Substitution Ross McCormack replaces Kelvin Etuhu.
55:33 Roman Bednar is ruled offside. David Marshall takes the indirect free kick.
55:26 Gavin Rae produces a cross.
53:32 Free kick awarded for a foul by Chris Brunt on Peter Whittingham. Free kick taken by Kevin McNaughton.
52:40 Effort on goal by Graham Dorrans from inside the penalty box misses to the right of the target.
49:01 The ball is crossed by Gianni Zuiverloon, save by David Marshall.
48:30 Drilled right-footed shot by Roman Bednar. Save made by David Marshall.
48:05 Centre by Gonzalo Jara, clearance made by Anthony Gerrard.
47:45 Shot by Gonzalo Jara from 30 yards. Mark Hudson gets a block in.
47:38 Graham Dorrans produces a cross, Mark Hudson makes a clearance.
47:27 Chris Brunt produces a cross.
46:16 Foul by Gavin Rae on Gonzalo Jara, free kick awarded. Direct free kick taken by Filipe Teixeira.
45:23 Substitution Aaron Wildig is brought on as a substitute for Riccardo Scimeca.
45:01 The referee gets the second half underway.
45:00+2:54 The ref blows to end the first period.
45:00+2:27 Gianni Zuiverloon restarts play with the free kick.
45:00+2:27 Booking Peter Whittingham is booked.
45:00+2:23 Handball decision goes against Peter Whittingham.
45:00+2:08 Peter Whittingham takes a short corner.
45:00+0:50 Anthony Gerrard takes the direct free kick.
45:00+0:50 Booking Gonzalo Jara booked.
45:00+0:39 Gonzalo Jara challenges Gavin Rae unfairly and gives away a free kick.
43:48 Chris Brunt is ruled offside. Free kick taken by David Marshall.
42:13 Chris Brunt crosses the ball, save by David Marshall.
41:28 Short corner taken by Graham Dorrans from the left by-line.
40:27 The ball is swung over by Marek Cech, Anthony Gerrard makes a clearance.
39:48 The ball is crossed by Graham Dorrans, Mark Hudson makes a clearance.
38:45 Shot from just outside the area by Marek Cech goes over the bar.
38:40 Centre by Roman Bednar, clearance by Kevin McNaughton.
37:44 Simon Cox challenges Kevin McNaughton unfairly and gives away a free kick. David Marshall takes the direct free kick.
37:08 Foul by Riccardo Scimeca on Chris Brunt, free kick awarded. Chris Brunt restarts play with the free kick.
35:16 Substitution (West Brom) makes a substitution, with Filipe Teixeira coming on for Youssouf Mulumbu.
Correction - 33:54 Youssouf Mulumbu has an effort at goal from a long way out that goes wide of the right-hand post.
33:54 Gonzalo Jara has an effort at goal from long range that misses to the right of the goal.
33:26 The referee blows for offside. Scott Carson takes the free kick.
33:01 Peter Whittingham takes a inswinging corner to the near post, clearance made by Graham Dorrans.
32:37 The ball is delivered by Chris Burke, Peter Whittingham takes a shot. Scott Carson makes a save.
30:51 The assistant referee signals for offside against Kelvin Etuhu. Scott Carson takes the indirect free kick.
30:12 Corner taken by Chris Burke from the left by-line played to the near post, clearance made by Gianni Zuiverloon.
28:49 Peter Whittingham fouled by Chris Brunt, the ref awards a free kick. Anthony Gerrard restarts play with the free kick.
28:35 Centre by Chris Brunt, clearance made by Mark Hudson.
27:42 The ball is delivered by Gianni Zuiverloon, save by David Marshall.
26:50 Free kick awarded for an unfair challenge on Michael Chopra by Abdoulaye Meite. Free kick taken by Kevin McNaughton.
26:16 Paul Quinn produces a cross, Gianni Zuiverloon makes a clearance.
24:52 The ball is delivered by Chris Brunt, clearance made by Anthony Gerrard.
24:42 The ball is delivered by Gianni Zuiverloon, clearance made by Riccardo Scimeca.
24:12 The ball is swung over by Chris Brunt, Mark Hudson manages to make a clearance.
22:43 Free kick awarded for a foul by Riccardo Scimeca on Graham Dorrans. Free kick crossed by Graham Dorrans, clearance made by
22:11 The ball is sent over by Graham Dorrans, clearance by Mark Hudson.
19:55 Chris Brunt challenges Paul Quinn unfairly and gives away a free kick. Direct free kick taken by David Marshall.
19:25 Gianni Zuiverloon delivers the ball.
17:57 GOAL - Chris Burke:West Brom 0 - 1 Cardiff Chris Burke scores a goal from outside the box to the bottom left corner of the goal. West Brom 0-1 Cardiff.
16:27 Chris Burke sends in a cross, Headed effort from deep inside the area by Michael Chopra misses to the right of the target.
15:11 Inswinging corner taken by Chris Brunt.
14:33 Centre by Michael Chopra, save by Scott Carson.
13:04 Peter Whittingham decides to take a short corner.
12:33 Centre by Peter Whittingham, Shot from 25 yards from Chris Burke. Save by Scott Carson.
11:18 Shot from 12 yards by Roman Bednar. David Marshall makes a save.
9:55 Short corner taken by Chris Burke, Chris Burke produces a right-footed shot from just outside the penalty area that goes harmlessly
over the target.
9:14 Corner taken by Chris Burke from the left by-line to the near post, Jonas Olsson manages to make a clearance.
8:47 The official flags Simon Cox offside. Direct free kick taken by David Marshall.
8:23 Effort on goal by Michael Chopra from deep inside the area goes harmlessly over the bar.
7:16 Chris Burke fouled by Chris Brunt, the ref awards a free kick. The free kick is swung in left-footed by Gavin Rae.
6:37 The assistant referee flags for offside against Simon Cox. Anthony Gerrard takes the direct free kick.
4:10 Free kick awarded for a foul by Chris Burke on Simon Cox. Marek Cech takes the free kick.
2:17 Inswinging corner taken by Graham Dorrans from the left by-line, clearance by Chris Burke.
1:57 Graham Dorrans takes the chance to get an effort at goal. Save by David Marshall.
0:00 The game gets underway.
Live text and data provided by The Press Association.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.