Watch goals from every Sky Bet Championship match, plus full reports, as Leeds United returned to the top of the division.
Sky Bet Championship results
- Wigan 1-2 Swansea
- Blackburn 2-1 Sheffield Wednesday
- Brentford 0-1 Huddersfield
- Cardiff 4-2 Birmingham
- Derby 2-0 Middlesbrough
- Fulham 0-3 Hull
- Leeds 2-0 QPR
- Luton 1-2 Forest
- Reading 2-1 Millwall
Wigan 1-2 Swansea
Substitute Sam Surridge's stoppage-time goal sent Swansea second in the Sky Bet Championship thanks to a 2-1 victory at Wigan.
Steve Cooper's men had to do it the tough way, with Paul Cook's Wigan dominating an entertaining encounter at the DW Stadium that they will feel they should have won.
Swansea took the lead after 12 minutes through Nathan Dyer, only for Kieffer Moore to equalise nine minutes later from the penalty spot.
For most of the second period it was Wigan who looked the likelier to win it, with Jamal Lowe hitting the bar and both Moore and Sam Morsy seeing goalbound efforts blocked.
There was to be one more twist in the tale, and it was against the run of play, with Surridge heading home Connor Roberts' cross with seconds remaining.
Blackburn 2-1 Sheffield Wednesday
John Buckley scored an stoppage-time winner as Blackburn came from behind to beat Sheffield Wednesday 2-1 in dramatic fashion at Ewood Road.
The hosts looked to be heading for a third consecutive defeat when Jacob Murphy headed in his second of the season in the 83rd minute.
But Tony Mowbray's team mounted an incredible fightback, with Tosin Adarabioyo's first goal for the club levelling matters in the 88th minute before Buckley sent Ewood Park into raptures, netting with a deflected effort in stoppage time.
There was still time for Christian Walton to pull of an outstanding save to end Blackburn's six-match winless streak.
It also means Wednesday's four-game unbeaten run is at an end.
The game could have gone either way but Wednesday looked to have made the telling breakthrough seven minutes from the end when Morgan Fox's cross was met at the front post by Fletcher whose shot came back off the crossbar and fell invitingly to Murphy, who nodded into the empty net from a yard out.
But Rovers were not to be denied and equalised two minutes from the end when Adarabioyo met Elliott Bennett's searching cross and his towering header looped over the despairing Westwood.
Astonishingly, Blackburn snatched an injury time winner through Buckley, whose 18-yard drive took a huge deflection and wrong-footed Westwood.
Fernando Forestieri's deflected long-range effort struck a post deep into added time, before Walton produced a match-winning save to deny Sam Hutchinson at the death.
Brentford 0-1 Huddersfield
Huddersfield stretched their unbeaten run to seven games with a 1-0 win in the battle of the Sky Bet Championship's form sides at Brentford.
Karlan Grant's ninth goal of the season was enough for the Terriers as he crashed home a low drive just past the hour mark.
Fraizer Campbell chased a ball down the left and pulled it back for Grant to fire home across Bees goalkeeper David Raya and into the far corner after 62 minutes.
It was harsh on a Brentford side who probably deserved a draw on the balance of chances, but Town defended resolutely and always looked a threat on the break.
The hosts were the first to show in the seventh minute, with a neat three-man move ending with Bryan Mbeumo crossing from the right into the path of Christian Norgaard whose first-time effort flew over when he could easily have taken a touch.
Ollie Watkins twice worked good positions in the opening minutes but was pulled back for offside as Huddersfield kept a disciplined line at the back, with Christopher Schindler and Tommy Elphick both outstanding.
The Terriers repeatedly tried to exploit the space in behind the Bees defence in a first half played largely around the halfway line. They always looked dangerous, with Grant's trickery playing off Campbell giving the home defence plenty to think about.
The former Charlton striker thought he had given his side the lead on the half hour as Brentford backed off and his precise low shot looked destined for the bottom corner until Raya's fingertips pushed it wide.
Then came Town's sucker punch as they exploited the space left at the back by Thomas Frank's side and Campbell held it up for Grant to apply the killer finish.
Cardiff 4-2 Birmingham
A Joe Ralls hat-trick sealed a 4-2 victory for Cardiff in an incident-packed encounter with Birmingham.
The visitors dominated before Kristian Pederson's early opener but the hosts completed a first-half fightback thanks to Curtis Nelson's first Cardiff goal and Ralls' dubious penalty.
Danny Ward's dismissal opened the door for Birmingham after the Cardiff striker was sent off for a dangerous challenge on Kerim Mrabti, but Ralls completed his brace to take the hosts two goals clear.
Ivan Sunjic's long-range strike gave Pep Clotet's Blues a glimmer of hope, but Ralls secured the three points when he completed his treble from the spot deep into stoppage time.
Cardiff's set-piece vulnerabilities were laid bare in their South Wales derby defeat to Swansea at the Liberty Stadium, and they were once again on show for all to see after only two minutes.
Fran Villalba's searching free-kick was met by Lukas Jutkiewicz, who powered a header across goal for the Birmingham players queuing at the back post.
Mrabti somehow failed to get a meaningful contact on the ball from two yards out but Pederson was on hand to bundle into an empty net for an early lead.
Birmingham could have been 3-0 up when they were dealt a harsh blow by referee Andrew Madley after 29 minutes.
As a Ralls corner curled into the area, the referee adjudged Blues captain Harlee Dean to have tugged on Aden Flint's shirt and pointed to the spot.
Ralls stepped up and found the bottom right corner to draw the Bluebirds level, and they competed an unlikely turnaround 10 minutes later.
Aden Flint powered Marlon Pack's corner straight at Camp, who could only palm the ball back into the danger zone. Nelson failed to provide the finishing touch twice in the six-yard box melee but eventually made a solid contact to steer the ball into the net to crown his first league start with a goal.
The momentum swung back the way of Clotet's side seven minutes after half-time when Ward was shown a straight red card for a crunching studs up challenge on Mrabti.
Instead of sitting in and grinding out a result, Cardiff went on the offensive and their plan paid off after 69 minutes.
Nathaniel Mendez-Laing outmuscled Pederson down the right wing and surged into the box before squaring the ball for Ralls to sweep past Camp and into the far corner.
Sunjic gave the travelling Blues fans a late ray of hope when he picked up the ball 25 yards out and fired a fierce effort into the top corner.
But their hopes evaporated in stoppage time when captain Harlee Dean was the second man to be shown a straight red after elbowing Ralls in an aerial duel.
There was still time for Omar Bogle to be tripped in the box by Marc Roberts to allow Ralls to calmly complete his hat-trick from the penalty spot.
Derby 2-0 Middlesbrough
Another bruising week for Derby ended on a high as a Tom Lawrence double secured a 2-0 win over struggling Middlesbrough.
The sacking of captain Richard Keogh for "gross misconduct" following the incident in which Lawrence and Mason Bennett were convicted of drink-driving had dominated the build-up to the game.
But it was Lawrence who clinched a fourth straight home win with a goal in each half against Boro, who played for an hour with 10 men after George Saville was sent off for a lunge on Krystian Bielik.
Middlesbrough had not scored since early October but they should have gone ahead in the second minute when Derby lost possession in the penalty area only for Britt Assombalonga's shot to deflect behind off Matt Clarke.
The game was very open and Derby unlocked Boro's defence in the 22nd minute with a quality move started by Bielik and finished with a low drive from just inside the area by Lawrence after he exchanged passes with Marriott.
The visitors were looking shaky at the back and Derby went close again in the 28th minute when a glancing header from Curtis Davies was turned over by Aynsley Pears.
Boro's afternoon got worse in the 32nd minute when Saville went in for a challenge with Bielik, catching the Polish midfielder just above the right ankle, and was shown a red card by Darren Bond.
It looked the correct decision and Marriott was only just off target with a stooping header before the visitors headed for the dressing room with a lot to sort out.
But Derby made the game safe in the 84th minute when Bogle played in Lawrence, who showed good control before driving a shot past Pears from an angle to pile more pressure on Boro head coach Jonathan Woodgate.
Fulham 0-3 Hull
Fulham's fragility on the road finally came home to Craven Cottage as the London side were convincingly beaten 3-0 by Hull.
A proud record of having lost just one of their previous 23 home games at Championship level always looked in jeopardy from the moment Josh Bowler swept the visitors in front after just 10 minutes.
And second-half goals from Jarrod Bowen and Tom Eaves secured a third straight impressive win for Grant McCann's Tigers, having previously seen off Nottingham Forest and Derby.
Interplay between Grosicki and Callum Elder on the left wing six minutes later ended with the latter swinging over a high cross that held up in the swirling wind.
Bowler headed it against Bryan's replacement Maxime Le Marchand but connected much more convincingly as the ball rebounded to him, volleying it past Bettinelli.
The visitors might have added to their lead in the 25th minute but Jon Toral's shot struck team-mate Bowen in the back and skidded to safety.
If the second period began with a sustained period of Fulham dominance, it was in the name of possession and territory rather than chances created.
It was left to Hull to demonstrate the ruthlessness that is required to mount a sustained tilt at promotion.
After a 57th-minute break had initially broken down, the excellent Jackson Irvine slipped a pass in front of Bowen, a natural goalscorer at Championship level.
Bowen strode forward, shimmied to create himself a yard of space and fired a low shot under the body of Bettinelli to give his side a lead which already looked unassailable.
Still Fulham offered almost nothing and Hull substitute Eaves sealed victory six minutes from time, albeit inadvertently as Bowen's shot cannoned off Bettinelli's legs and struck the forward on the shin before rolling over the line.
Leeds 2-0 QPR
Leeds returned to the top of the Sky Bet Championship after a 2-0 victory over QPR at Elland Road.
Goals in each half from Tyler Roberts and Jack Harrison settled the contest as the Whites moved above Swansea on goal difference.
In what has been a recurring theme for Marcelo Bielsa's side this season, they struggled to truly kill off their opponents despite bossing large periods.
They have still scored just seven goals in seven games and their failure to seal convincing victories, especially at home, will be a concern.
Leeds started brightly and had a golden early chance to open the scoring.
Luke Ayling's precise centre picked out Mateusz Klich but despite being unmarked, the midfielder volleyed over.
Minutes later Stuart Dallas drew a fine save from QPR goalkeeper Liam Kelly, who pushed his effort behind for a Leeds corner.
The home side were piling on the pressure and Rangers had debutant Lee Wallace to thank for a goal-saving tackle to keep out misfiring striker Patrick Bamford.
Bamford, who has now failed to score in his last 10 outings, had rounded Kelly and looked destined to tap into an empty net but Wallace's sliding tackle ensured it stayed out.
Leeds finally made their dominance pay after 39 minutes when Harrison cut in from the left and pulled the ball back to Roberts, who coolly slotted home his first goal of the season.
The failure to find a second goal raised the tension inside Elland Road and Rangers missed a glorious chance to capitalise and restore parity.
Substitute Todd Kane whipped in a cross that picked out Jordan Hugill but he planted a header wide.
That proved to be costly as Leeds finally got some breathing space with a second goal from Harrison.
He played a one-two before bending an effort around Kelly and into the net to seal a well-earned victory.
Luton 1-2 Forest
Nottingham Forest bounced back from two straight defeats in confident fashion as goals from Lewis Grabban and Sammy Ameobi saw them defeat struggling Luton 2-1 at Kenilworth Road.
Having dropped out of the top two following defeats to Wigan and Hull, Sabri Lamouchi's side showed little sign of letting that affect them as they dominated for long periods.
The visitors missed a wonderful opportunity in the 12th minute as they sliced open the Town defence, Grabban firing wildly wide from 12 yards when he should have hit the target at least.
Town had a goal disallowed in the 23rd minute, when Dan Potts converted at the second attempt at the far post only to be flagged offside.
Home defenders Sonny Bradley and James Bree got in each other's way going for a long ball and Grabban went through to easily beat Shea for his sixth of the season.
After the break, the visitors continued to dominate, Joe Lolley ghosting in at the far post to miss the target with his header.
Ben Watson's radar was well off from distance, before Forest did have a second to virtually kill their opponents off.
Lolley escaped on the right and found Ameobi at the far post, who was given time to turn, his deflected effort beating Shea to double Forest's advantage.
With three minutes left, Luton sub Callum McManaman gave his side a sniff, taking LuaLua's pass to wriggle free superbly and then beat Samba with an excellent bending effort.
Forest held on, as the hosts suffered their third successive defeat.
Reading 2-1 Millwall
Reading stretched their unbeaten Championship run under new manager Mark Bowen to three matches with 2-1 victory over Millwall at Madejski Stadium.
Defender Jordan Obita, with his first goal for 30 months, gave Reading the lead with a clinical strike after nine minutes.
As the home side dominated, striker Sam Baldock made it 2-0 in the 37th minute with another clean effort from distance.
Millwall reduced the deficit in the second half when Jed Wallace cleverly slid home his sixth goal of the season.
Bowen replaced the sacked Jose Gomes last month and had led Reading to a 1-0 home win over Preston North End and a 2-2 draw at QPR.
Reading weathered Millwall's early pressure and went in front in the ninth minute.
John Swift's corner was deflected for a throw-in and, from skipper Liam Moore's long throw, the Millwall defence partially cleared it.
Bialkowski kept Millwall in contention with a stunning save to keep out Matt Miazga's glancing header from a Swift corner.
But the keeper stood little chance when Baldock, set free by Ovie Ejaria, rifled home from just outside the area eight minutes before the break.
Millwall gradually reasserted themselves and were rewarded in the 63rd minute when they reduced the gap.
Wallace weaved his way past several poor challenges on the right, cut inside and then beat keeper Rafael with a low shot.