Andy Keogh's last-minute header sealed all three points for Cardiff City against 10-man Millwall.
Scott Barron had given the visitors a 10th-minute lead from close range, before Jay Bothroyd levelled soon after.
Liam Trotter was then shown a straight red card for a foul on Darcy Blake.
And in first half stoppage time, Whittingham saw a spot-kick saved by David Forde after he was bundled over by Darren Ward.
It did not matter in the end for Cardiff who have now extended their unbeaten run at home to 11 and got themselves back to winning ways after two straight away defeats.
Millwall will feel hard done by though after battling hard for a share of the spoils with a man down for over half of the match, but they are now without a win in four Championship outings.
In the early stages though, it seemed like it was going to be another long afternoon for Kenny Jackett's Lions, who last week were on the receiving end of a 6-1 drubbing by Watford.
Jones hails Cardiff perseverance
Cardiff started brightly, but against the run of play, Millwall struck when Trotter broke down the right and Nadjim Abdou took over the mantle to skip past Lee Naylor who laid off to Barron to finish off from six yards.
Their lead was only to last 14 minutes as out of nothing, Cardiff were level.
Naylor's throw-in ran loose for Bothroyd - making his 100th Cardiff appearance - to slot his seventh goal of the season in from close range.
And he could have had more in a thrilling first half, first putting an effort wide before being denied by Forde, who was playing his 100th consecutive League game.
But the Bluebirds were handed a boost five minutes before the break when Trotter was sent off for a challenge on Blake.
And three minutes into time added on, Whittingham blew a golden opportunity when former Cardiff keeper Forde saved his penalty.
Cardiff continued to press after the break and came closest through substitute Jason Koumas who saw his chance cleared off the line by Paul Robinson.
But they kept on pushing and Millwall, who have conceded the most Championship goals in the last 15 minutes, succumbed in the final minute when Wolves loanee Keogh headed home Bothroyd's cross for his first Cardiff goal, and first goal since August 2009.
Live text and stats
Saturday, 25 September 2010
Npower Championship
Home Team
Score
Away Team
Time
Cardiff
2-1
Millwall
FT
(HT 1-1)
Bothroyd 24
Keogh 89
Barron 10
Cardiff
22 Heaton
02 McNaughton
03 Naylor
05 Hudson
06 Gyepes
07 Whittingham
10 McPhail (Koumas 64)
11 Burke
23 Blake (Rae 81)
09 Bothroyd
17 Keogh yellow card
Substitutes
01 Marshall,
14 Quinn,
04 Rae,
18 Taiwo,
19 Koumas,
27 Matthews,
28 Wildig
Millwall
01 Forde
02 Dunne yellow card
05 Robinson
15 Craig
16 Barron
17 Mkandawire
18 Ward
06 Trotter red card
26 Abdou
20 Morison yellow card
22 Lisbie (Schofield 69)
Substitutes
23 Mildenhall,
21 Smith,
07 Schofield,
12 Hackett,
14 Henry,
09 Harris,
25 Robinson
Ref: Lee MasonAtt: 23,010
CARDIFF
MILLWALL
Possession
Cardiff56%
Millwall44%
Attempts on target
Cardiff10
Millwall5
Attempts off target
Cardiff8
Millwall5
Corners
Cardiff9
Millwall1
Fouls
Cardiff14
Millwall15
Final Result
Full Time
90:00+3:51 The referee blows his whistle to end the game.
90:00+2:17 Jason Koumas takes the direct free kick.
90:00+2:17 Booking The referee books Alan Dunne for unsporting behaviour.
90:00+2:10 Alan Dunne gives away a free kick for an unfair challenge on Jay Bothroyd.
90:00+1:33 The assistant referee signals for offside against Danny Schofield. Free kick taken by Tom Heaton.
89:14 Booking Booking for Andrew Keogh for unsporting behaviour.
88:53 The assist for the goal came from Jay Bothroyd.
88:53 GOAL - Andrew Keogh:Cardiff 2 - 1 Millwall Andrew Keogh finds the net with a headed goal from close range. Cardiff 2-1 Millwall.
88:16 Free kick taken by Peter Whittingham.
88:16 Booking The referee shows Steve Morison a yellow card.
88:09 Steve Morison challenges Chris Burke unfairly and gives away a free kick.
87:51 Inswinging corner taken left-footed by Peter Whittingham, Tamika Mkandawire manages to make a clearance.
87:33 Jay Bothroyd takes a shot. Blocked by Tamika Mkandawire.
86:55 Alan Dunne challenges Peter Whittingham unfairly and gives away a free kick. Free kick taken by Lee Naylor.
85:01 Free kick awarded for a foul by Chris Burke on Alan Dunne. Free kick taken by David Forde.
84:05 Outswinging corner taken from the left by-line by Scott Barron.
83:36 Peter Whittingham takes the inswinging corner, Steve Morison makes a clearance.
82:39 Effort on goal by Chris Burke from just inside the area clears the bar.
82:27 Unfair challenge on Alan Dunne by Jason Koumas results in a free kick. David Forde takes the free kick.
82:05 Jason Koumas takes a shot. Clearance by Alan Dunne.
81:52 Chris Burke takes a shot. Save made by David Forde.
81:20 Inswinging corner taken left-footed by Peter Whittingham from the right by-line, clearance by Paul Robinson.
80:40 Substitution Gavin Rae comes on in place of Darcy Blake.
80:05 Peter Whittingham takes a shot. Save by David Forde.
78:43 Corner from the left by-line taken by Chris Burke, Andrew Keogh produces a right-footed shot from deep inside the area which goes wide of the left-hand post.
77:58 Danny Schofield has shot on goal from just outside the penalty box which goes wide of the right-hand upright.
74:13 Alan Dunne challenges Mark Hudson unfairly and gives away a free kick. Tom Heaton restarts play with the free kick.
71:53 The official flags Andrew Keogh offside. David Forde takes the indirect free kick.
69:17 Effort on goal by Peter Whittingham from just inside the area clears the crossbar.
69:01 Inswinging corner taken right-footed by Chris Burke from the left by-line, clearance by Steve Morison.
68:37 Peter Whittingham takes the inswinging corner, Mark Hudson takes a shot. Paul Robinson gets a block in.
68:21 Substitution Danny Schofield joins the action as a substitute, replacing Kevin Lisbie.
64:39 Unfair challenge on Paul Robinson by Andrew Keogh results in a free kick. David Forde takes the free kick.
63:44 Substitution Jason Koumas joins the action as a substitute, replacing Stephen McPhail.
62:54 Stephen McPhail gives away a free kick for an unfair challenge on Nadjim Abdou. Free kick crossed left-footed by Scott Barron.
60:49 Free kick awarded for a foul by Darcy Blake on Kevin Lisbie. David Forde takes the free kick.
59:52 Effort from the edge of the box by Steve Morison goes wide of the right-hand upright.
58:31 The offside flag is raised against Jay Bothroyd. David Forde restarts play with the free kick.
57:38 Free kick awarded for a foul by Jay Bothroyd on Tony Craig. Direct free kick taken by David Forde.
56:20 Kevin Lisbie gives away a free kick for an unfair challenge on Stephen McPhail. Tom Heaton restarts play with the free kick.
52:51 Kevin Lisbie concedes a free kick for a foul on Lee Naylor. Tom Heaton takes the direct free kick.
52:19 The offside flag is raised against Chris Burke. David Forde takes the free kick.
50:30 Chris Burke produces a curled right-footed shot from deep inside the penalty box which goes wide of the left-hand post.
48:24 Unfair challenge on Jay Bothroyd by Paul Robinson results in a free kick. Free kick crossed right-footed by Chris Burke from left channel, save by David Forde.
46:57 Alan Dunne fouled by Gabor Gyepes, the ref awards a free kick. Scott Barron produces a cross, Header from deep inside the area by Tamika Mkandawire goes over the bar.
45:01 The match restarts for the second half.
Half Time
45:00+2:46 The referee blows for half time.
45:00+2:21 Inswinging corner taken by Chris Burke from the left by-line, Gabor Gyepes produces a right-footed shot from inside the area that clears the crossbar.
45:00+2:16 Penalty taken by Peter Whittingham is saved by David Forde. Cardiff 1-1 Millwall.
45:00+1:15 Foul by Darren Ward on Peter Whittingham, Penalty awarded.
44:28 Andrew Keogh concedes a free kick for a foul on Paul Robinson. Free kick taken by David Forde.
43:45 Free kick awarded for a foul by Steve Morison on Lee Naylor. Direct free kick taken by Tom Heaton.
42:55 Effort on goal by Steve Morison from just inside the penalty box goes harmlessly over the target.
39:43 Tom Heaton takes the free kick.
39:43 Sent off Liam Trotter is sent off.
39:36 Free kick awarded for a foul by Liam Trotter on Darcy Blake.
38:42 Jay Bothroyd has an effort at goal from deep inside the area missing to the right of the goal.
37:33 Jay Bothroyd has an effort at goal from just inside the box that misses to the right of the target.
36:56 Free kick awarded for an unfair challenge on Gabor Gyepes by Tamika Mkandawire. Tom Heaton takes the direct free kick.
36:21 Jay Bothroyd takes a shot. Save by David Forde.
35:36 Kevin Lisbie takes a shot. Kevin McNaughton gets a block in.
35:00 Foul by Kevin Lisbie on Gabor Gyepes, free kick awarded. Direct free kick taken by Tom Heaton.
32:02 Tamika Mkandawire takes a shot from just inside the penalty box which clears the crossbar.
31:46 Kevin Lisbie takes a shot. Save by Tom Heaton.
31:33 Liam Trotter takes a shot. Blocked by Gabor Gyepes.
30:00 Jay Bothroyd takes a shot. Save by David Forde.
26:59 Peter Whittingham takes the inswinging corner, free kick awarded for an unfair challenge on David Forde by Darcy Blake. David Forde restarts play with the free kick.
26:20 Jay Bothroyd fouled by Darren Ward, the ref awards a free kick. Jay Bothroyd takes the direct free kick.
25:17 The official flags Chris Burke offside. David Forde takes the indirect free kick.
23:27 Assist on the goal came from Peter Whittingham.
23:27 GOAL - Jay Bothroyd:Cardiff 1 - 1 Millwall Jay Bothroyd finds the back of the net with a goal from close in to the bottom right corner of the goal. Cardiff 1-1 Millwall.
21:15 The referee blows for offside against Jay Bothroyd. Indirect free kick taken by David Forde.
19:57 Darcy Blake challenges Kevin Lisbie unfairly and gives away a free kick. Scott Barron delivers the ball from the free kick left-footed from left channel.
18:57 Steve Morison challenges Kevin McNaughton unfairly and gives away a free kick. Direct free kick taken by Tom Heaton.
17:35 Liam Trotter is ruled offside. Tom Heaton restarts play with the free kick.
16:47 Unfair challenge on Kevin Lisbie by Lee Naylor results in a free kick. David Forde takes the free kick.
14:04 Darcy Blake challenges Nadjim Abdou unfairly and gives away a free kick. Direct free kick taken by David Forde.
11:51 Corner taken right-footed by Chris Burke, Andrew Keogh challenges David Forde unfairly and gives away a free kick. Direct free kick taken by David Forde.
9:50 The assist for the goal came from Kevin Lisbie.
9:50 GOAL - Scott Barron:Cardiff 0 - 1 Millwall Scott Barron fires in a goal from close range to the bottom right corner of the goal. Cardiff 0-1 Millwall.
7:27 Kevin Lisbie fouled by Jay Bothroyd, the ref awards a free kick. Direct free kick taken by Alan Dunne.
6:04 Liam Trotter takes a shot. Gabor Gyepes gets a block in.
4:22 Shot from just outside the penalty box by Chris Burke misses to the left of the target.
2:59 Paul Robinson challenges Andrew Keogh unfairly and gives away a free kick. Peter Whittingham crosses the ball, Darcy Blake takes a shot. Save by David Forde.
0:00 The game begins.
Live text and data provided by The Press Association.
Bookmark with:
What are these?