Piccoli launched his attack in the final kilometre on the climb while the GC favourites dared each other to strike.
Bookwalter finally caught and went around the Canadian with less than 50 metres to the line, Sepp Kuss (Rally Cycling) finishing second as Piccoli faltered.
"I wasn’t super confident at the bottom of the climb," Bookwalter said. "But the further I went up, seeing the team ride so amazingly, I kept getting more confident and just tried to bide my time and be patient and make the right move at the end.”
“The climb was in two pieces with four to five kilometres and then a downhill and another four to five. We did a good recon of it last week and we knew that it wasn’t super steep, so I was anticipating that it would get a little tactical.
"Before the race we talked it over, probably too much, and all of the different things that could happen and the way we could ride it. As you saw, the guys in the team just made it happen and delivered me perfectly."
On the final climb to Snowbasin, young Ecuardorian Jhonatan Narvaez (Axeon Hagens Berman) tried his luck with eight kilometres to go but was reeled back in by first Adam de Vos (Rally) then the bunch. De Vos broke clear himself with seven kilometres left to race and was alone until Piccoli's last surge.
Earlier, BMC's Joey Rosskopf thew everything at the mountains jersey (KOM) cresting the first categorised climb solo and holding off the breakaway he'd helped form to claim the maximum points on the North Ogden Divide, with around 40 kilometres left to race.
Rosskopf grabbed himself a total of 14 KOM points, but Jelly Belly's Jacob Rathe did enough to keep the jersey with a two point lead.