Sweden sunk by late Hungary goal
The hosts missed a glorious chance to take the lead when Tamas Hajnal fired a penalty against the crossbar in the 19th minute after Oscar Wendt had handled.
Johan Elmander then struck the post seven minutes later as Sweden came to life. Hungary, though, nosed in front from a counter attack a minute before half-time.
Rudolf delivered a delightful pass to Imre Szabics and he lifted the ball over onrushing goalkeeper Andreas Isaksson.
Sweden upped the tempo of their play and equalised in the 60th minute when Elmander turned his marker and set up Christian Wilhelmsson for an easy finish.
Rudolf then grabbed the winner in the 90th minute, tapping the ball in from close-range after fine work by substitute Tamas Priskin on the right wing.
Hungary have 15 points from eight matches, the same as Sweden who have played one game fewer. Netherlands are on 21 points from seven matches after their 11-0 rout of San Marino on Friday.