Robben books Bayern final berth
Bayern will meet Werder Bremen, who beat second division Augsburg 2-0, in the final in Berlin on May 15.
Dutchman Robben grabbed the winner in the 112th minute of an otherwise lacklustre game when he raced some 40 metres down the right, cut back into the middle and released a curling left-foot shot into the top corner.
VIDEO: Watch it here
Bayern, who have won a record 14 titles in 16 final appearances, are top of the Bundesliga and also face Manchester United in the Champions League quarter-finals next week.
"Robben dribbled a lot and still had power to decide the match like that. That's superb," Bayern coach Louis van Gaal told reporters.
"I think we were superior in both tactics and fitness. We were patient and luckily he (Robben) made that goal," he told ARD Television.
In a subdued first half, the visitors should have scored when Robben raced clear in the 10th minute but his shot from 12 metres was saved by keeper Manuel Neuer, who kept his cool long enough to deflect it wide.
Both teams laboured with their quick passing game on an extremely rough pitch and Schalke's solid defence, the best in the league this season, left Robben and Frenchman Franck Ribery, who came on in the second half, with little space to move.
The hosts set a fierce pace early in the second half, coming close through Croatia international Ivan Rakitic and striker Kevin Kuranyi.
With both teams looking as if they had settled for penalties to decide the single-leg semi-final, Robben exploded down the wing, shrugging off three defenders in the process and beating Neuer, who just got a touch to the ball.
"I felt good and when you get the ball and have that space you have to take it," Robben said. "I think we were the better team ... and in extra time we were as fit as Schalke."