Thomas completed the 3.34km time trial through Lausanne in three minutes and 29.43 seconds, four seconds clear of Italian Giacomo Nizzolo.
Australian Michael Rogers of Team Sky was fourth but British team-mate Bradley Wiggins could only manage 11th.
He struggled in the rain and finished nine seconds off the pace.
Defending champion, and last year's Tour de France winner, Cadel Evans also had difficulties with the conditions, the Australian finishing 20 seconds behind Thomas.
Thomas told the Team Sky website: "It's a nice little win. The team told me I was racing here about 10 days ago so it was great to come over. I always knew that I'd be up there.
"Fortunately with the weather conditions it played into my hands a bit but there was only really one corner. There's only so much time you can lose in one corner."
The Welshman said he would now be looking to support Cavendish and Wiggins, competing together in Team Sky colours for the first time.
"For myself now it's purely a team role. I'll be there to help Cav in the sprints wherever they come and Bradley is going for the GC (general classification) as well so I'll be there to help him wherever I can.
"Coming from the track I don't really have the climbing legs at the minute. I've been used to 4km the last couple of weeks with the track, but we'll give it everything and see what happens."