The Royals went ahead against the run of play in the 31st minute when Pavel Pogrebnyak collected the ball on the inside-left channel and drilled under Michel Vorm.
Brian McDermott's men went in at the break with a two-goal lead thanks to Noel Hunt's volley that silenced the Liberty Stadium.
Swansea came out in a resurgent manner at the start of the second half but were denied on several occasions by McCarthy, who twice pushed efforts onto the frame of the goal.
The Swans did get a goal back with 20 minutes remaining when Miguel Michu dived in at the back post to head in Routledge's deflected cross.
Routledge then completed the comeback soon after by exchanging passes with half-time substitute Luke Moore and smashing home.
A point for Reading moves them out of the drop zone, while Swansea stay 11th.