The BORA-hansgrohe team leader timed his run to show Rick Zabel (Katusha-Alpecin) and Simone Consonni (UAE Team Emirates) a clean pair of heels at the end of the 186.5km stage from Pismo Beach to Morro Bay.
“I’d like to thank the entire team for their effort today and in particular my brother Juraj," Sagan said. "He was probably the most visible rider on TV today. He was pulling all day.
"They all did a great job and positioned me in the front in the last moment. I was a little back in the last 600 metres but I had a strong finale and took the win.”
Sagan's team-mate, Rafal Majka finished safely in the bunch to maintain his race lead ahead of George Bennett (LottoNL-Jumbo) and Ian Boswell (Sky).
“It was a hard day with the wind," Majka said. "You had to be focused all day long. All the boys did an amazing job and showed excellent spirit in the end with Peter taking another stage.
"We can be really happy with two stages in hand and also still leading the GC.”
The race was animated early when Danny Pate (Rally), Federico Zurlo (UAE Team Emirates), David Lozano (Novo Nordisk) and Sean Bennett and Ben Wolfe of Jelly Belly-Belly Maxxis made the break of the day which ended inside the final 10km to make way for the inevitable sprint finish.