Wolves' lead at the top of the Coca-Cola Championship now stands at just two points after they were beaten 1-0 by Reading at the Madejski Stadium.
The Royals took an early lead when Chris Armstrong swung in a cross which Wolves defender Neill Collins accidentally flicked into his own net.
Reading should have doubled their advantage just before the break but James Harper could only shoot straight at Wayne Hennessey from close range.
Collins' miserable night came to a premature end as he was sent off late on for foul and abusive language in injury-time.
Birmingham moved to within four points of Wolves as they overcame a stubborn Derby side 1-0 at St Andrews. City struggled to break Derby down in a scrappy first half but Lee Carsley headed the winner just before the hour when he headed home a Hameur Bouazza cross.
Matthew Spring's first-half strike was enough to give Charlton their first win in 19 matches against Crystal Palace at The Valley.
Lloyd Sam found Spring in the box and he thumped a drive past Julian Speroni to give the hosts their first league win since October 4.
Swansea followed up last week's win over FA Cup holders Portsmouth by thumping fellow play-off hopefuls Preston 4-1 at the Liberty Stadium.
The Swans took the lead two minutes in through Jordi Gomez before Jason Scotland doubled the hosts' lead after 29 minutes.
Guillem Bauza added a third and Alan Tate struck late on to give Swansea before Chris Brown scored a consolation for Preston.
Copyright (c) PA Sport 2009, All Rights Reserved.