Fabio Borini, on loan from Chelsea, scored twice as Swansea City, third, beat their sixth-placed Championship play-off rivals Nottingham Forest 3-2 at the Liberty Stadium to go to within a point of the automatic promotion places. Scott Sinclair's dazzling solo effort after 21 minutes put the Swans ahead before Borini, set up by Angel Rangel, made it 2-0. Kris Boyd on his first start for Forest made it 2-1 but Sinclair created Borini's second just before the hour. Paul Anderson's late Forest goal ensured a tight finish.
Leaders Queens Park Rangers did very nicely without their ill playmaker Adel Taarabt. His replacement, Hogan Ephraim, curled in a fine shot two minutes into the second half to earn QPR a 1-0 win at Doncaster and open up a nine-point gap on second-placed Norwich City, who were held to a 1-1 draw at Hull City thanks to Nick Barmby's late equaliser for the Tigers.
A tremendous contest at The Den ended 3-3 between Millwall and fourth-placed Cardiff City. The first of Chris Burke's two goals put the Bluebirds ahead, but a Liam Trotter penalty and Kevin Lisbie's opportunism saw the Lions lead 2-1. Peter Whittingham levelled, Burke's second put the Welsh side ahead but three minutes from time Steve Morison made Millwall's point.
Ten minutes into the second half of the Yorkshire derby at Bramall Lane, Leeds United's Eric Lichaj, on loan from Aston Villa, turned Nick Montgomery's cross into his own net to set Sheffield United on their way to a 2-0 win which hauled the Blades closer to safety. Bjorn Helge Riise's close-range 74th-minute effort wrapped up their second win in 16 games. Leeds finished with 10 men after substitute Billy Paynter saw red in the last minute.
"We were better than them all around the pitch," Blades manager Micky Adams said, sensing a recovery. "We've got four home games left which are key to it and this performance has given us a chance."
Substitute Mathieu Manset scored the only goal of the game as Reading won 1-0 at Barnsley to move to within three points of the play-offs, but Burnley slipped to eighth after a 2-0 defeat at Bristol City and Leicester City lost 1-0 at home to Portsmouth.
Two struggling sides sacked their managers last week but neither have reaped immediate benefit. Coventry City, who sacked Aidy Boothroyd, lost 2-1 at bottom club Preston North End, their second win in a week. The first was against Scunthorpe United, who sacked Ian Baraclough after that loss. And the Iron lost again, 2-0 at Ipswich.
Of the sides just above the bottom three, Crystal Palace drew 2-2 with Derby County but Middlesbrough beat Watford 2-1 at the Riverside.
Substitute Ashley Barnes' 67th-minute strike saw leaders Brighton win 1-0 at Oldham to establish a seven-point lead after Huddersfield Town, second, were held to a goalless draw by Swindon.
Nerves at the top. Bury, second, lost 3-2 at home to Cheltenham and Wycombe, third, drew 1-1 at Shrewsbury, fourth.
Barcelona and Real Madrid both won 2-1 to leave the top of the Spanish League unchanged. Barça lead by five points clear and have a much better goal difference than there rivals from the capital. Dani Alves and Bojan Krkic put Barcelona in control agaist Getafe after 50 minutes but Manu pulled a late goal back. Karim Benzema and Mesut Ozil put Real ahead in the Madrid derby with Sergio Agüero replying late for Atletico.