DJ Campbell scored twice as Blackpool ensured the tussle for the Championship's play-off places will go the distance after a 3-1 home defeat of third-placed Nottingham Forest.
Forest, with only four away wins, were behind just after the half-hour. David McGoldrick fouled Seamus Coleman and Charlie Adam scored his 17th of the season from the penalty. Campbell was on target from 12 yards before the hour and, after Joel Garner had got Forest back into the match, struck again from 10 yards to keep the Seasiders two points behind sixth-placed Swansea City.
Swans showed few nerves as they too won 3-1, goals by Ashley Williams, Shefki Kuqi and Darren Pratley beating Barnsley. "If we have to win our last two games then so be it," Swans manager Paulo Sousa said. Joe Ledley's goal 10 minutes from the end at Loftus Road saw fourth-placed Cardiff City beat Queens Park Rangers 1-0, while Leicester City thumped Watford 4-1 despite being left with 10 men for the second half after Steve Howard's wild tackle and red card. The Hornets are three points above the bottom three.
A Stern John strike five minutes from the end at Pride Park saw Crystal Palace grab a point from the 1-1 draw with Derby County, who led through Russell Anderson. Palace are two points above the bottom three. A Gary Hooper hat-trick eased Scunthorpe United's worries in a 3-0 defeat of Bristol City.
Reading's fine form continued with a 6-0 thrashing of relegated Peterborough, Gylfi Sigurdsson scoring twice, and there were 1-1 draws for Preston at Coventry and Doncaster at Ipswich Town, a 19th of the season for the Suffolk side.
Michael Nelson's 34th-minute header at the Valley saw Norwich City regain a Championship place after a 1-0 defeat of Charlton Athletic confirmed promotion. Second-placed Leeds lost 3-2 at Gillingham.
Notts County and Rochdale are promoted. Lee Hughes scored twice as County beat Morecambe 4-1. Dale's first promotion since 1969 and escape from the bottom level for the first time since 1974 came after Chris O'Grady's goal saw Northampton beaten 1-0. Stevenage Borough will play in League Two after a 2-0 win at Kidderminster won the Conference title.