West Brom moved within a point of the Coca-Cola Championship summit and opened up an eight-point cushion over third-placed Nottingham Forest after contrasting results for the two team.
While the Baggies were beating promotion-chasing Swansea 2-0, Forest went down to a shock 2-1 defeat at Barnsley.
Daniel Bogdanovic's brace, the second a penalty after Forest striker Robert Earnshaw fouled Filipe Teixeira, put the Tykes 2-0 up by the 65th minute.
Dexter Blackstock volleyed in Radoslaw Majewski's cross to halve the deficit but Forest were unable to stave off a fifth successive away league defeat.
Graham Dorrans' 15th goal of the season earned West Brom the spoils at the Liberty Stadium.
Nathan Dyer, Mark Gower and Angel Rangel went close in the first half for the home side but Scotland midfielder Dorrans slotted away a 79th-minute penalty after Rangel fouled Giles Barnes. Ishmael Miller then grabbed a late second.
Defender Bruno Berner's strike eight minutes after half-time earned fifth-placed Leicester a 1-0 win at 10-man Crystal Palace, who lost Claude Davis - already booked - to a straight red card three minutes before half-time.
The division's top scorer Peter Whittingham earned Cardiff, in sixth, the three points at Coventry with a last-minute penalty. Chris Burke had cancelled out Clinton Morrison's header in the first half and, after Martin Cranie's handball, Whittingham thumped home the spot-kick.
There was more late drama at the other end of the table as Plymouth, second from bottom, grabbed a last-minute winner to thwart Bristol City's second-half comeback and Peterborough were sunk by Doncaster's injury-time strike.
Argyle led 2-0 at half-time through Chris Clark's first league goal for the club, on his 76th appearance, and an overhead kick by Bradley Wright-Phillips on his full home debut.
Nicky Maynard scored twice to level matters but was then off target with a close-range header. The Robins then lost Jamal Campbell-Ryce to a second yellow card before Carl Fletcher drove in the winner for the hosts from 20 yards.
Rovers came from behind to deny rock-bottom Peterborough a third successive win, with all the goals coming in the second half.
Charlie Lee headed Posh into a 55th-minute lead but Gareth Roberts volleyed a stunning equaliser before Billy Sharp crossed for John Oster to tap in a 90th-minute winner.
Sheffield Wednesday moved out of the relegation zone on goal difference after overcoming a 2-0 deficit to draw 2-2 at Preston.
Neil Mellor and Paul Coutts put the hosts 2-0 up but former North End boss Alan Irvine left his former home ground with a share of the spoils after goals from Tommy Miller and Marcus Tudgay.
Gylfi Sigurdsson won and converted a penalty five minutes from time as Reading put daylight between themselves and the bottom three with a 1-0 win over QPR. Damion Stewart was sent off for the visitors for a second bookable offence just before half-time.
Leroy Lita earned 10-man Middlesbrough a 2-2 draw at Derby. Chris Porter and Michael Tonge had overhauled Barry Robson's first-half opener and Boro had Rhys Williams sent off two minutes before Lita headed their last-minute winner.
Richard Cresswell's brace led Sheffield United to a 3-0 hammering of Blackpool at Bramall Lane, Nick Montgomery scoring the Blades' other goal.
Will Hoskins earned Watford a 2-1 win over Ipswich after Jack Colback cancelled out Henri Lansbury's opener.
Copyright (c) PA Sport 2009, All Rights Reserved.