The Italian was pipped by IAM Cycling’s Matteo Pelucchi to the podium’s top spot, with Movistar’s Jose Joaquin Rojas rounding out the top three.
Viviani praised his teammates, saying they provided the perfect lead-out, and apologised for not capitalising on their hard work.
“I’m sorry for everyone I couldn’t finish it off.” he told the Team Sky website.
“Pelucchi came from behind and he started the sprint just before me. Once he had jumped I just didn’t have the speed to pull him back before the line.
“We’re happy because it was the first lead-out we’ve done together. We had a good feeling with Andy Fenn and Bernie (Eisel), and before that with Danny Pate, (Ian) Boswell and Xabi (Zandio).
“Now we’re already thinking about Sunday. We’ll take the positives from what we did today and I think next week in Dubai, if we have this feeling now after one race, we can improve and make the best lead-out in the group. I’m looking forward to it.”