A Hal Robson-Kanu equaliser on the stroke of half-time signalled Reading's revival at Millwall, the substitute Adam Le Fondre scoring a 76th-minute winner as the Royals racked up a sixth consecutive win, 2-1, to move within a point of automatic promotion in the Championship. "This was about guts more than anything," said the Royals manager, Brian McDermott.
Middlesbrough are back in the play-off places, Barry Robson, from a first-half penalty, Matthew Bates and Marvin Emnes scoring in a 3-1 win at Portsmouth, where fans staged a sit-in after the match in protest at the financial mismanagement of Pompey. A late red card for Rhys Williams was the only blot on Boro's day – not as large a blemish as Birmingham City's surrender of a two-goal lead at home to Derby, Steve Davis's header and a Theo Robinson effort giving the Rams a 2-2 draw.
Just outside the play-off places, Brighton were also thwarted, El Hadji Diouf's injury-time penalty earning the bottom club, Doncaster, a point from a 1-1 draw after Craig Mackail-Smith gave Brighton a first-half lead.
Leicester and Coventry both had penalties saved but the Foxes proved the surer finishers in open play, David Nugent and Jermaine Beckford scoring as their team won 2-0 despite having Paul Konchesky sent off.
Michael Chopra, who allegedly accompanied Jimmy Bullard on last week's jaunt to Newcastle for which the Ipswich midfielder was suspended by his club for two weeks, headed the first of his side's goals in an easy 3-0 win over struggling Bristol City.
Trailing 2-0 at home to Burnley, Watford scored three goals in 21 second-half minutes to win 3-2; Crystal Palace beat Peterborough 1-0 and Nottingham Forest drew 1-1 at Barnsley.
Yann Kermorgant's injury-time winner at Bournemouth saw Charlton open up a 13-point lead after second-placed Sheffield United threw away a 2-0 lead at Bramall Lane, losing 3-2 to Oldham and having Matt Lowton and Harry Maguire sent off. Sheffield Wednesday, who sacked Gary Megson last week after winning the Steel City derby, drew 0-0 at Rochdale.
Despite being reduced to 10 men after 11 minutes, when James Constable was sent off, Oxford United beat leaders and local rivals Swindon Town 2-0, Asa Hall and Oli Johnson scoring to half the Robins' run of 10 wins.
Zlatan Ibrahimovic scored a hat-trick in 14 first-half minutes as Milan warmed up for Tuesday's Champions' League match at Arsenal with a 4-0 victory away to Palermo in Serie A.