Burnley moved to the top of the Championship table as they came from behind to claim a 2-1 win over Bolton Wanderers.
Liam Feeney put the Trotters ahead after 69 minutes as they thought they were going to snatch a win against the Clarets but Andre Gray scored a brace in the last 16 minutes to fire Sean Dyche’s side to the summit.
A back post header from Albert Adomah got the visitors off to a good start after just three minutes and Grant Leadbitter’s penalty doubled their lead on the 20-minute mark.
Richard Stearman was sent off late on for the Cottagers but the scoreline remained the same.
Jonathan Kodjia’s strike four minutes before the break levelled for the Robins after Ben Osborn’s shot home after half an hour and Aden Flint headed home to hand them three vital points in their quest to avoid relegation.
Two penalties from Anthony Pilkington – one in each half – was all it took as they jumped to seventh, three points behind Sheffield Wednesday, even though Callum Robinson got a late consolation goal for Preston.
Arsenal loanee Yaya Sanogo scored a hat-trick for Charlton but it wasn’t enough to save them from a 4-3 defeat at the hands of Reading.
The two sides trades goals early on with Yann Kermogant and Sanogo both scoring and, nine minutes before the break, the former notched another for the Royals to make it 2-1 at the Valley.
The Frenchman played a part in Reading’s third too as he laid the ball on for Ola John to smash home before Sanogo struck again to make the scoreline 3-2.
But, just when the Arsenal striker thought he’d got the Addicks a point, Latvian striker Deniss Rakels rammed in a winner.
Blackburn claimed a vital win as they look to avoid relegation to League One, beating fellow strugglers MK Dons 3-2.
Elliott Bennet half-volleyed in a second for Paul Lambert’s side before Alex Revell slotted home another equaliser, but three minutes into added time Gomez grabbed his second and an all-important winner.
Ipswich’s play-off hopes have been boosted as they grabbed a 1-0 victory over Huddersfield Town.
The Tractor Boys took the lead through Ben Pringle and the Terriers were unable to get anything back as they look over their shoulders at the relegation zone from 16th spot.
Rotherham moved to within three points of safety as they beat Brentford 2-1 on home soil.
Matt Derbyshire got the struggling hosts ahead after 29 minutes but Alan Judge struck just before half-time as he slotted home the rebound from his saved penalty.
The Millers, though, took home all three points at the final whistle as substitute Danny Ward struck low into the back of the net with 19 minutes remaining.
Elsewhere, Queens Park Rangers beat Birmingham City 2-0 thanks to Tjaronn Chery and a Junior Hoilett penalty.
Blackburn 3-2 Milton Keynes Dons
Bolton 1-2 Burnley
Cardiff 2-1 Preston
Charlton 3-4 Reading
Fulham 0-2 Middlesbrough
Huddersfield 0-1 Ipswich
Nottingham Forest 1-2 Bristol City
Queens Park Rangers 2-0 Birmingham
Rotherham 2-1 Brentford