Heidar Helguson kept Cardiff City top of the Championship as the visitors came from behind at Ipswich Town.
Ipswich led through a controversial DJ Campbell goal, as replays showed the striker used his hand to prod home.
Cardiff got a lifeline when Ipswich goalkeeper Scott Loach spilled Craig Conway's cross and Helguson pounced.
Then with two minutes left Ipswich's defensive frailities again came to the fore as Helguson stole in at the back post to head in Andrew Taylor's cross.
The result leaves Ipswich stuck firmly in the relegation places, just a point above bottom-placed Peterborough.
Ipswich boss Paul Jewell chose to leave out former Cardiff striker Michael Chopra, who this week was one of nine people charged in connection with race-fixing by the British Horseracing Authority.
Cardiff's promotion heartbreak
- 2009-10: Finished 4th - lost in play-off final
- 2010-11: Finished 4th - lost in play-off semi-finals
- 2011-12: Finished 6th - lost in play-off semi-finals
But at least Jewell had Campbell available, after the forward arrived on a three-month loan from Queen's Park Rangers.
The former Blackpool striker seemed to breathe new life into Ipswich's stuttering attack and the Tractor Boys largely bossed the first half.
Campbell saw an early effort drift over the Cardiff crossbar, while Jay Emmanuel-Thomas - a former loanee at Cardiff - brought a superb full-stretch save out of Bluebirds keeper David Marshall with a swerving, dipping shot.
Cardiff's attacks were more sporadic and when Ipswich took the lead on the stroke of half-time the lead was deserved, although the method left a sour taste in Cardiff mouths.
Lee Martin spun away from Mark Hudson on the left touchline and delivered a searching cross between the Cardiff centre-backs.
Campbell seemed sure to score but Marshall's charge off his line seemed to distract the Ipswich new boy, with replays showing the ball missed the striker's head and went in off his hand instead.
Referee Eddie Ilderton and his assistants missed the infringement and allowed the goal to stand.
An aggrieved Cardiff emerged for the second half and a rasping drive from Peter Whittingham that just cleared the bar signalled a renewed vigour from Malky Mackay's men.
Campbell received a standing ovation when he was brought off just before the hour mark to be replaced by Jason Scotland, but the change failed to stifle Cardiff's momentum and they levelled on 63 minutes.
Substitute Conway looked to have wasted his crossing opportunity on the left as he floated his delivery too close to Loach, but the Ipswich man was unable to cleanly gather and spilled the ball into the path of Helguson, who had the easiest of tap-ins.
Taylor stung the fingers of Loach with a drilled effort from the left of the area, before Rudy Gestede's header deflected away for a Cardiff corner.
Cardiff then grabbed all the points when Taylor's high cross into the area from the left caused more hesitation in the Ipswich defence.
Aaron Cresswell left the ball thinking Loach was coming out to claim and Helguson leaped high at the far post to head home unchallenged.
Sorry, we were unable to load match stats, please try again.
Live Text Commentary
Full Time The final whistle goes and the game is over.90:00 +2:32
Jay Emmanuel-Thomas produces a cross, Heidar Helguson manages to make a clearance. Andy Drury takes a outswinging corner.90:00 +2:15
The ball is swung over by Carlos Edwards, Don Cowie makes a clearance.89:45
Corner taken right-footed by Don Cowie.89:45 Substitution
Substitution Bilel Mohsni comes on in place of Daryl Murphy.89:45 Substitution
Substitution (Cardiff) makes a substitution, with Ben Turner coming on for Kevin McNaughton.87:12
Andrew Taylor provided the assist for the goal.87:12 Goal scored
Goal! - Heidar Helguson - Ipswich 1 - 2 Cardiff Heidar Helguson grabs a headed goal from close in. Ipswich 1-2 Cardiff.86:23
Rudy Gestede takes a shot. Save by Scott Loach. A cross is delivered by Andrew Taylor,85:50
The ball is delivered by Craig Conway, Luke Chambers manages to make a clearance.83:39
The ball is crossed by Aaron Cresswell, clearance by Don Cowie. Corner taken right-footed by Andy Drury from the left by-line to the near post, Daryl Murphy has a headed effort from close range and clears the crossbar.83:21
Carlos Edwards sends in a cross, Andrew Taylor makes a clearance.82:28
Massimo Luongo takes a shot. Blocked by Mark Hudson.81:24
Peter Whittingham takes the inswinging corner, clearance made by Lee Martin.80:54
Foul by Lee Martin on Kevin McNaughton, free kick awarded. Free kick taken by Peter Whittingham.80:44
Andrew Taylor takes a shot. Luke Chambers makes a clearance.79:10
The assistant referee signals for offside against Jason Scotland. Mark Hudson takes the free kick.77:56
Kevin McNaughton takes a shot. Blocked by Aaron Cresswell. Peter Whittingham takes a shot. Danny Higginbotham gets a block in.77:24
Craig Conway takes a shot. Luke Chambers gets a block in.75:11
Daryl Murphy delivers the ball, save by David Marshall.
Carlos Edwards delivers the ball, Aron Gunnarsson makes a clearance.73:55
The ball is sent over by Lee Martin, clearance made by Mark Hudson.72:46 Substitution
Substitution Massimo Luongo on for Richie Wellens.72:22
Don Cowie produces a cross.71:43
Kevin McNaughton sends in a cross, Carlos Edwards manages to make a clearance.70:56
The ball is delivered by Peter Whittingham.69:28
Shot by Jason Scotland from outside the box goes over the target.68:56
The ball is swung over by Daryl Murphy, Craig Conway manages to make a clearance.68:22
The ball is sent over by Craig Conway, Scott Loach makes a save.67:08
A cross is delivered by Carlos Edwards, clearance made by Mark Hudson.66:50
Unfair challenge on Lee Martin by Peter Whittingham results in a free kick. Carlos Edwards takes the direct free kick.66:33
Unfair challenge on Jay Emmanuel-Thomas by Andrew Taylor results in a free kick. Free kick taken by Carlos Edwards.64:02
Corner taken by Craig Conway, clearance by Danny Higginbotham. Peter Whittingham takes a corner.63:28 Substitution
Substitution (Cardiff) makes a substitution, with Rudy Gestede coming on for Joe Mason.62:35 Goal scored
Goal! - Heidar Helguson - Ipswich 1 - 1 Cardiff Heidar Helguson fires in a goal from close in to the bottom left corner of the goal. Ipswich 1-1 Cardiff.61:24
The ball is sent over by Andrew Taylor, clearance made by Aaron Cresswell. Mark Hudson sends in a cross, Craig Conway takes a shot. Scott Loach makes a save.60:00
Corner taken by Don Cowie from the left by-line, Luke Chambers makes a clearance. The assistant referee signals for offside against Mark Hudson. Indirect free kick taken by Scott Loach.59:04
Centre by Craig Conway, clearance by Danny Higginbotham. Corner taken short by Peter Whittingham, The ball is delivered by Craig Conway, clearance by Aaron Cresswell.58:31 Substitution
Substitution (Ipswich) makes a substitution, with Jason Scotland coming on for DJ Campbell.56:06
The ball is swung over by Daryl Murphy, Andrew Taylor makes a clearance. Corner taken right-footed by Andy Drury from the right by-line, Heidar Helguson manages to make a clearance. Richie Wellens takes a shot. Matthew Connolly gets a block in.55:56
Aaron Cresswell produces a cross, Kevin McNaughton makes a clearance.54:27 Substitution
Substitution Craig Conway joins the action as a substitute, replacing Craig Noone.54:27
Effort on goal by Jay Emmanuel-Thomas from just inside the penalty box goes harmlessly over the target.51:30
The ball is swung over by Craig Noone, blocked by Jay Emmanuel-Thomas.48:21
The ball is delivered by Carlos Edwards, Joe Mason makes a clearance.48:00
Corner taken short by Andy Drury.47:07
Matthew Connolly crosses the ball, clearance by Daryl Murphy. Peter Whittingham takes a shot from inside the box clearing the bar.46:26
Joe Mason produces a cross, Danny Higginbotham gets a block in.45:37
Carlos Edwards crosses the ball, clearance made by Don Cowie.45:01
The referee blows his whistle to start the second half.45:00 +2:05 Half time
Half Time It is the end of the first-half.45:00 +0:49
Assist by Lee Martin.45:00 +0:49 Goal scored
Goal! - DJ Campbell - Ipswich 1 - 0 Cardiff Goal scored by DJ Campbell from inside the six-yard box to the bottom right corner of the goal. Ipswich 1-0 Cardiff.44:01
The official flags Aron Gunnarsson offside. Luke Chambers takes the free kick.41:57
Andy Drury takes the inswinging corner, clearance by Heidar Helguson. Carlos Edwards takes a shot. Blocked by Andrew Taylor. Jay Emmanuel-Thomas takes the inswinging corner, clearance made by Heidar Helguson.41:23 Booking
Booking Andy Drury goes into the referee's book.40:55
Aron Gunnarsson has a shot on goal from outside the area which misses right.40:28
Centre by Carlos Edwards, clearance by Matthew Connolly. Andy Drury takes a shot. Mark Hudson gets a block in.40:12
The ball is delivered by Peter Whittingham, clearance by Luke Chambers.37:47
Effort on goal by Danny Higginbotham from long range goes harmlessly over the target.36:03
Aaron Cresswell produces a cross, save made by David Marshall.35:34
Unfair challenge on Carlos Edwards by Craig Noone results in a free kick. Carlos Edwards takes the free kick.34:38
Jay Emmanuel-Thomas takes a shot.32:46
The ball is swung over by Danny Higginbotham, David Marshall makes a save.31:52
Lee Martin takes a shot. Blocked by Peter Whittingham. Outswinging corner taken by Andy Drury from the right by-line, clearance made by Peter Whittingham.31:01
Joe Mason challenges Aaron Cresswell unfairly and gives away a free kick. Andy Drury takes the direct free kick.30:31
Danny Higginbotham sends in a cross, Headed effort from close range by Daryl Murphy bounces off the post.29:55
Corner from left by-line taken by Andy Drury.29:11
Mark Hudson sends in a cross, Aron Gunnarsson takes a shot. Scott Loach makes a save.28:04
Foul by Craig Noone on Carlos Edwards, free kick awarded. Carlos Edwards restarts play with the free kick.26:32
Jay Emmanuel-Thomas takes a shot. Save by David Marshall. Corner taken by Lee Martin from the right by-line, Matthew Connolly manages to make a clearance.26:00
Craig Noone produces a cross, save by Scott Loach.25:23
A cross is delivered by Carlos Edwards.23:52
Carlos Edwards sends in a cross, Matthew Connolly manages to make a clearance.23:38
The ball is sent over by Carlos Edwards, Mark Hudson makes a clearance.19:53
Andy Drury concedes a free kick for a foul on Don Cowie. Don Cowie takes the free kick.19:08
Centre by Joe Mason, Mark Hudson takes a shot. Save by Scott Loach.18:31
The ball is delivered by Aron Gunnarsson, clearance by Jay Emmanuel-Thomas.17:48
Foul by DJ Campbell on Matthew Connolly, free kick awarded. Matthew Connolly restarts play with the free kick.17:35
Centre by Kevin McNaughton, clearance made by Jay Emmanuel-Thomas.17:20
Lee Martin takes a shot. Blocked by Matthew Connolly.16:20
The ball is sent over by Aaron Cresswell, Shot from inside the area by DJ Campbell clears the bar.12:52
The ball is sent over by Jay Emmanuel-Thomas, save by David Marshall.11:54
Mark Hudson has a headed effort from close in and clears the bar.11:05
Free kick awarded for a foul by Daryl Murphy on Kevin McNaughton. Peter Whittingham takes the free kick.8:14
DJ Campbell takes a shot. Save by David Marshall.6:33
Don Cowie challenges Lee Martin unfairly and gives away a free kick. Richie Wellens takes the direct free kick.5:36
Inswinging corner taken left-footed by Peter Whittingham from the right by-line.5:29
The ball is crossed by Craig Noone, Carlos Edwards gets a block in.5:05
Inswinging corner taken by Peter Whittingham from the right by-line, save by Scott Loach.4:52
Aron Gunnarsson produces a cross, blocked by Luke Chambers.3:38
Centre by Daryl Murphy, Andrew Taylor makes a clearance.1:34
The referee penalises Jay Emmanuel-Thomas for handball. Andrew Taylor takes the direct free kick.0:00
The match begins.
Live data and text provided by our data suppliers