Juergen Roelandts (Lotto-Soudal) leads overall one minute ahead of Fabian Cancellara (Trek Segafredo) who leads Orica-GreenEdge's Luke Durbridge by five minutes.
On a second day of racing on rain-soaked roads, Sagan was fastest in the sprint finish after a 187.6km route of four laps around Baar.
Maximiliano Richeze (Etixx-QuickStep) was second and Australia's Michael Matthews (Orica-GreenEdge) was third, both in the same time as Sagan.
Marcel Wyss (IAM), Sebastien Minard (AG2R), Mathias Krizek (Team Roth) and Antwan Tolhoek (Roompot) made the unsuccessful break of the day - caught with 30km left to race.
“It was dangerous because we had some crashes throughout the day," Sagan said. "In the last 20km it was important for us to be at the front, then there was another breakaway for the last intermediate sprint, but everyone knew we’d be going for the final sprint.
"Everyone wanted to be at the front. I took a good wheel and my teammates got me in a good position, and I did my sprint.”
Roelandts was fifth, also with Sagan's time, to take the leader's yellow jersey by one second from Cancellara.
Sagan rose to fourth overall, trailing Roelandts by 10 seconds.
"If I’m not riding to win, I’m not riding. It’s what I do and it has to be fun," Sagan said. There was a lot of stress in the group that I didn’t like, and it can be a bit boring riding so far to contest just a few final kilometres.
"Even though it’s a tough year this year, I’m hoping to see it through to the end, although maybe in the grupetto on the harder stages. It's better to race than to be at home training."
Robert Gesink of LottoNL-Jumbo was a notable casualty on the day, crashing hard midway through the stage.
"We saw that it was not a crash where you put a rider on the bike and let him ride again," sports director Jan Boven said.
Gesink suffered several abrasions and was taken to hospital for further examinations.
"I can’t remember anything of the crash," he said. "I fell on my head and broke my helmet. I can remember that I started this morning, but after that, I lost it all."
The nine-day race continues with a 192.6km ride from Grosswangen to Rheinfelden.