Chris Eagles scored twice as Burnley kept hopes of a top six finish alive, coming from behind to win 4-2 at Derby County. Trailing 2-1 just before the hour, the Clarets levelled when one of the Rams' goalscorers, Jamie Ward, gave away a penalty and was sent off. Eagles scored from the rebound after Brad Jones saved his penalty and Burnley pressed home their advantage, goals by Wade Elliott and Chris McCann wrapping up the win.
Eddie Howe's side go level on 66 points with Leeds United, sixth, and Nottingham Forest.
Hull City could have done likewise, but having led after three minutes slumped alarmingly at home to Middlesbrough, Scott McDonald scoring a first-half hat-trick as Boro won away 4-2. "We didn't just contribute to our own downfall; we were almost responsible for it in its entirety," Tigers' Nigel Pearson said.
Fifth-placed Swansea City ended a run of four away defeats with a 0-0 draw at Portsmouth that left them six points off automatic promotion.
Darren Purse's header and Josh McQuoid's shot from 25 yards in the first-half and two more by John Marquis and James Henry, from a penalty after the break, saw Millwall thump Preston North End 4-0 at the Den. The Lions are two points adrift of the play-offs.
Bottom club Sheffield United earned a rare win 3-2 against Bristol City, a match in which both sides had a player sent off. The Blades are six points from safety with three matches left.
John Eustace's second-minute close-range finish at Vicarage Road set Watford on their way to a 1-0 win over Barnsley.
Champions Brighton lost the League's last unbeaten home record, goals by David Connolly and Jose Fonte earning Southampton a 2-1 win in the South Coast derby at the Withdean as the Saints reclaimed an automatic promotion place.
Chesterfield celebrated promotion in muted fashion with a 0-0 draw at Oxford United, while Shrewsbury Town regained the third automatic promotion place with a 2-0 win at Hereford. Izale McLeod's hat-trick saw Barnet win 4-2 at Gillingham and move to within a point of safety.
Schalke prepared for Tuesday night's Champions' League semi-final against Manchester United with a 1-0 home defeat by Kaiserslautern. Real Madrid and Barcelona, who meet in the other semi, fared better. Real thrashed Valencia 6-3, with Gonzalo Higuain scoring a hat-trick. Barça eased past Osasuna 2-0.Reuse content