Neil Warnock tasted defeat for the first time since becoming Leeds manager as Southampton extended their lead at the top of the Championship to four points with a 1-0 victory at Elland Road.
Rickie Lambert scored his 24th goal of the season after getting on the of Tadanari Lee's flick-on in the first half to give the Saints their 19th league win of the season and pile the pressure on second-placed West Ham, who visit Cardiff on Sunday.
Reading boosted their promotion hopes thanks to Adam Le Fondre's winner at Millwall. Andrew Keogh put the home side on course for a shock victory against the league's third-placed side before Hal Robson-Kanu equalised for the Royals in first-half injury time.
The visitors dashed the home side's hopes of getting anything from the game when Le Fondre latched on to Jason Roberts' pass and beat David Forde to seal the 2-1 win for Brian McDermott's team.
Birmingham surrendered a two-goal lead and dropped to sixth after drawing 2-2 at Derby. Andros Townsend's wicked shot flew in off Erik Huseklepp to give the Blues the lead before Marlon King doubled the home side's lead.
Steve Davies turned home Ben Davies' cross to pull one back for the Rams on 61 minutes and Theo Robinson equalised shortly after to deny Chris Hughton's side a win.
El-Hadji Diouf's second-half penalty denied Brighton the chance to climb into the play-offs as Doncaster drew 1-1 with Gus Poyet's side at the Keepmoat Stadium.
Craig Mackail-Smith bagged yet another goal to put the south-coast side ahead but Diouf spoiled the visitors' party by scoring from the spot.
Watford completed a remarkable comeback to grab all three points in their clash against Burnley at Vicarage Road. Nyron Nosworthy headed in to his own net to put Burnley 2-0 up after Jay Rodriguez's opener before the former Sunderland defender scored at the right for the Hornets to make it 2-1.
Substitute Alex Kacaniklic equalised for the home side with 18 minutes to go and Troy Deeney scored to make it 3-2 soon after.
More than 16,000 fans turned out to support financially-stricken Portsmouth but the vast majority of them went home unhappy after seeing the south-coast side beaten 3-1 by 10-man Middlesbrough.
Pompey's administrators warned this week that the club may not be able to afford to see out the season and their troubles went from bad to worse on the pitch when Boro raced in to a 2-0 lead after goals from Barry Robson and Matthew Bates.
Greg Halford gave Portsmouth a glimmer of hope when he scored from the penalty spot but Marvin Emnes dashed any hopes of an upset with an 83rd minute goal which lifted Tony Mowbray's men to fifth. Boro had defender Rhys Williams sent off at the end.
Craig Davies' second-half strike for Barnsley denied Nottingham Forest a third straight win at Oakwell as the Tykes salvaged a 1-1 draw - Forest had gone ahead in the 32nd minute through Garath McCleary.
Leicester achieved back-to-back league wins for the first time this season as they ran out 2-0 winners over Coventry in the midlands derby at the King Power Stadium.
Neil Danns missed an early penalty for the Foxes but it mattered little as they opened up a two-goal lead thanks to goals from David Nugent and Jermaine Beckford while Sammy Clingan missed from the spot for the away side.
Michael Chopra, Tommy Smith and Andy Drury gave Ipswich a 3-0 win over Bristol City while Crystal Palace beat Peterborough 1-0 in Saturday's other game - Australia international Mile Jedinak scoring the only goal 14 minutes from the end.