Match ends, Preston North End 1, Cardiff City 3.
Preston North End 1-3 Cardiff City: Late strikes see Bluebirds leapfrog Preston into play-offs
Cardiff City leapfrogged Preston North End to move into the Championship play-off places with a 3-1 win at Deepdale.
Substitute Nathaniel Mendez-Laing capped a fine team move to put the Bluebirds 2-1 up on 81 minutes, before Robert Glatzel made the win safe in stoppage time with a deflected finish.
Cardiff took the lead when Joe Ralls rose to head home Dion Sanderson's cross midway through the second half.
Daniel Johnson's 12th goal this season levelled the game four minutes later.
Cardiff move to sixth in the Championship, three points above Preston who sink to seventh and out of the play-off places.
Neil Harris' men deserved what was a hard-fought victory thanks to some decisive counter-attacks in an excellent second-half display.
It was the hosts who started the contest with a good tempo, happy to let Cardiff dominate possession and ready to tear at the Welsh side on the counter-attack.
They created a decent opening in just the second minute after smart work from Jayden Stockley allowed Tom Barkhuizen to shoot, but he dragged his effort wide.
Preston were unlucky four minutes later when Scott Sinclair wriggled free in the Cardiff penalty area and was clipped by Will Vaulks, with the referee waving away penalty claims despite replays showing a clear touch on the attacker.
The Bluebirds, who soaked up so much pressure in last week's 2-0 win over title contenders Leeds United, took a while to get going and their first good attempt did not arrive until 28 minutes, when Junior Hoilett lashed wide from just inside the area after the ball had fallen kindly.
They also came close on the stroke of half-time when Sean Morrison headed over from a corner, but Sinclair and Barkhuizen in particular were ensuring Cardiff could never switch off at the back.
Preston had the best chance in the opening exchanges of the second half when Sinclair's deceptive effort from 25 yards almost found the corner of the net, with Alex Smithies forced to make a smart, fingertip stop.
However, it was the visitors who were growing into the contest and exerting more pressure, and with 21 minutes remaining they found the breakthrough when Wolves loanee Sanderson swung in a teasing cross that Ralls headed home at the back post.
It was a terrific leap from Ralls who climbed above Darnell Fisher too easily, from a Preston perspective.
Cardiff might have made it 2-0 four minutes later, but Hoilett slammed wide after more good approach play.
However, the hosts levelled seconds later when Johnson produced a composed finish after substitute Sean Maguire drove forward and Alan Browne's shot was blocked by Morrison, with the rebound falling straight to the Preston forward.
Cardiff went back in front thanks to a lovely team move with nine minutes remaining, as a delightful touch by substitute Lee Tomlin freed Mendez-Laing, who finished emphatically.
Composed finishing was the key to this win as David Nugent blazed over with a huge chance to level, before Cardiff-born Preston defender Andrew Hughes headed at Smithies as the hosts looked to respond.
Another Cardiff substitute, Glatzel, made the win safe in injury time as the rain lashed down, with his effort on the counter taking a deflection and wrong-footing Declan Rudd in the Preston goal.
The goals by Cardiff's two substitutes took the Bluebirds' tally for the season to 15 goals off the bench, the most in the Championship.
Preston manager Alex Neil told BBC Radio Lancashire:
"I think our biggest frustration is we didn't make the best of our opportunities to hurt them
"The manner of how we conceded the first goal was disappointing and the second was also really poor defending.
"We got some great chances though after conceding those two goals and our endeavour to get back into the game saw us make some fairly strange decisions at key stages."
Cardiff City manager Neil Harris told BBC Sport Wales:
"It is a huge, huge win. We felt it was vital that we followed up last week's really impressive performance and result against Leeds with another solid one today.
"So [I am] delighted that we've played so well at times with the football and that we've got the three points.
"Ultimately at this stage of the season it's the points that matter, it's a big confidence boost. It pushes us in the right direction and dents the chances of a fellow promotion rival in Preston.
"When you're 1-0 up away from home, you're flying you want to see it out. But when you concede, to bounce back like we did to go on and score two really good goals, that's testament to my players."
- 2FisherSubstituted forGallagherat 77'minutes
- 6DaviesBooked at 67mins
- 29BarkhuizenSubstituted forMaguireat 71'minutes
- 11JohnsonSubstituted forPottsat 84'minutes
- 31SinclairSubstituted forHarropat 84'minutes
- 20StockleySubstituted forNugentat 84'minutes
- 12SmithiesBooked at 90mins
- 2SandersonBooked at 54mins
- 14AdomahSubstituted forGlatzelat 65'minutes
- 8RallsSubstituted forTomlinat 77'minutes
- 33HoilettSubstituted forPackat 90+6'minutes
- 13PatersonSubstituted forMendez-Laingat 65'minutes
- 24B Smith
- Oliver Langford
- Shots on Target
Second Half ends, Preston North End 1, Cardiff City 3.
Substitution, Cardiff City. Marlon Pack replaces David Junior Hoilett.
Attempt missed. Josh Harrop (Preston North End) right footed shot from the centre of the box is too high.
Attempt blocked. Brad Potts (Preston North End) right footed shot from the right side of the box is blocked. Assisted by Alan Browne.
Goal! Preston North End 1, Cardiff City 3. Robert Glatzel (Cardiff City) right footed shot from the left side of the box to the high centre of the goal. Assisted by Joe Bennett with a headed pass.
Alex Smithies (Cardiff City) is shown the yellow card.
Attempt missed. David Nugent (Preston North End) right footed shot from the left side of the box misses to the right. Assisted by Brad Potts.
Substitution, Preston North End. Josh Harrop replaces Scott Sinclair.
Substitution, Preston North End. Brad Potts replaces Daniel Johnson.
Substitution, Preston North End. David Nugent replaces Jayden Stockley.
Attempt saved. Andrew Hughes (Preston North End) header from the left side of the box is saved in the top centre of the goal. Assisted by Paul Gallagher.
Goal! Preston North End 1, Cardiff City 2. Nathaniel Mendez-Laing (Cardiff City) right footed shot from the centre of the box to the bottom right corner. Assisted by Lee Tomlin.
Offside, Cardiff City. Lee Tomlin tries a through ball, but Robert Glatzel is caught offside.
Substitution, Cardiff City. Lee Tomlin replaces Joe Ralls.
Substitution, Preston North End. Paul Gallagher replaces Darnell Fisher.
Attempt missed. Jayden Stockley (Preston North End) header from the centre of the box is too high. Assisted by Daniel Johnson following a corner.
Corner, Preston North End. Conceded by Nathaniel Mendez-Laing.
Goal! Preston North End 1, Cardiff City 1. Daniel Johnson (Preston North End) right footed shot from the centre of the box to the bottom left corner.
Attempt blocked. Alan Browne (Preston North End) right footed shot from the centre of the box is blocked. Assisted by Sean Maguire.
Attempt missed. David Junior Hoilett (Cardiff City) right footed shot from the centre of the box is too high. Assisted by Joe Ralls.
Substitution, Preston North End. Sean Maguire replaces Tom Barkhuizen.
Goal! Preston North End 0, Cardiff City 1. Joe Ralls (Cardiff City) header from the centre of the box to the bottom right corner. Assisted by Dion Sanderson with a cross following a set piece situation.
Attempt blocked. David Junior Hoilett (Cardiff City) right footed shot from outside the box is blocked.
Ben Davies (Preston North End) is shown the yellow card for a bad foul.
Robert Glatzel (Cardiff City) wins a free kick in the attacking half.
Foul by Ben Davies (Preston North End).
Substitution, Cardiff City. Nathaniel Mendez-Laing replaces Callum Paterson.
Substitution, Cardiff City. Robert Glatzel replaces Albert Adomah.
Foul by Joe Bennett (Cardiff City).
Tom Barkhuizen (Preston North End) wins a free kick in the defensive half.
Sean Morrison (Cardiff City) wins a free kick in the defensive half.
Foul by Scott Sinclair (Preston North End).
Attempt saved. Joe Ralls (Cardiff City) left footed shot from outside the box is saved in the centre of the goal.
Corner, Cardiff City. Conceded by Alan Browne.
Joe Bennett (Cardiff City) wins a free kick on the left wing.
Foul by Jayden Stockley (Preston North End).
Attempt missed. Jayden Stockley (Preston North End) left footed shot from the centre of the box misses to the left following a corner.
Corner, Preston North End. Conceded by Alex Smithies.
Attempt saved. Scott Sinclair (Preston North End) right footed shot from outside the box is saved in the bottom left corner. Assisted by Alan Browne.