Veteran Swiss Rast powered clear of Mathew Hayman, Alexander Kolobnev and Bert Grabsch over the final kilometre after the quartet had stayed out in front for much of the 186.1-kilometre ride from Leuggern to Meilen.
"This is such a big win for me," said a delighted Rast.
"This stage is close to my home and I know these roads very well," the RadioShack-Leopard team rider said.
"I've tried (for) 10 years to win a stage here and today I finally made it," he said.
"I'm really, really happy."
Rast acknowledged the going was tough.
"There was no real sprinter in our group, just strong guys with motivation to win."
With Rast riding hard and out of sight, Australia's Hayman pipped Kolobnev for second place while Grabsch, who had earlier made several failed attempts to escape the leading group, rounded out the top four.
The four riders were never challenged after breaking clear of the peloton 30 kilometres into the stage with the pack eventually crossing line almost 11 minutes off the pace.
In the overall standings, Frank, of Switzerland, remains 23sec ahead of Czech Roman Kreuziger, with last year's champion Rui Da Costa of Portugal in third at 35 seconds.
Friday's seventh stage, a 206-kilometre route from Meilen to La Punt, features four categorized climbs, including the HC Albula Pass just before the finish, a climb that peaks at 2,315 metres.
The Tour de Suisse wraps up on Sunday.