Sagan (BORA-hansgrohe) won the sprint at the end of the 155km circuit stage which included four 38km laps and featuring a category 3 climb around Frauenfeld.
The three-time world champion finished ahead of Quick-Step Floors speedster Fernando Gaviria and Australian Nathan Haas (Katusha-Alpecin) to claim his 16th career victory at the Swiss race.
“The team prepared everything to perfection," Sagan said. "That way, I only needed to finish the job. During the bunch sprint, I focused on Michael Matthews (Sunweb) and Fernando Gaviria. During the final metres, the headwind made it extremely hard to move into the lead.”
Kung had started the day in the leader's jersey after his BMC team won Saturday's opening stage team time-trial but he extended his advantage by taking bonus seconds in an intermediate sprint after the break was caught with 26km to go.
"I felt good immediately so I took the chance to take the bonus seconds in the sprint because everything came back together," Kung said. "
"Then, we just wanted to be up there and attempted to cover the moves. Richie [Porte] said 'I think I should attack' and I said 'why not' so, he gave it a go. It is always better to be on the offence than on the defence so I think we did a good job. In the end, it came down to a sprint but I think Greg [vanAvermaet] was up there so overall it was a good day for us."
BORA-hansgrohe set a fast pace on the final climb to force a split in the peloton while up ahead, BMC's Porte tested his legs with an attack with 19km to go.
Porte's attack was neutralized with 18km remaining before seven riders gained a small advantage in the final 10km but they were brought back with 5km to go to the sprint.
"There was not really any intent behind the attack but seeing as I was there and the sprinter's teams were either missing their sprinter or didn't have any guys left, I gave it a go," Porte said.
"It was an aggressive final which I didn't really expect. I think our guys were good. Stefan took a time bonus as well so I think everything today was good. It was quite hard but the guys put me in a pretty good position with Simon [Gerrans] especially looking after me all day. I think the signs are good."
The race continues with a hilly 128km Stage 3 from Oberstammheim to Gansingen.