They kept the pressure on the top two with a 1-nil win over Preston.
Swansea remain in with a chance of securing a play-off spot, despite a 2-all draw with fifth placed Nottingham Forest.
Charlton edged two points clear of the relegation zone with a 1-all draw at Birmingham.
It was the same score in the match between Bristol City and Stoke.