The Swedes fell behind to Ireland captain Robbie Keane's 60th international goal in front of a feverish full house at the Aviva Stadium but they drew level just after the half hour thanks to Johan Elmander's flying header.
Svensson, making a record-equalling 143rd appearance for his country, grabbed the winner after 57 minutes to move Sweden three points clear of the Irish.
Austria, who lost 3-0 away to group leaders Germany, remain level with Giovanni Trapattoni's Ireland side on 11 points.
Sweden, who trail Germany by five points, visit Kazakhstan next. With the worst goal difference among the three teams, Ireland must win in Austria on Tuesday and may still need other results to go their way to stay in the hunt for a playoff spot.