Michal Kwiatkowski retained the overall lead at Tirreno-Adriatico ahead of the final day following a hectic sprint stage.
Both riders were able to finish safely in a reduced peloton after a fast finishing circuit around Fano produced an incident-packed finale.
Thomas suffered yet more bad luck after being forced into a wheel change with 11 kilometres to go. With the pace high, strong work from Chris Froome, Gianni Moscon and Jonathan Castroviejo ensured he regained contact with the bunch ahead of the run-in.
With Kwiatkowski up front and shepherded by Vasil Kiryienka and Salvatore Puccio, both groups were able to miss a sizable crash which ripped a hole in the peloton.
As expected the day came down to a sprint, with Marcel Kittel (Katusha-Alpecin) narrowly holding off world champion Peter Sagan (Bora-Hansgrohe).
At the earlier intermediate sprint in Fano, BMC Racing combined to deny Kwiatkowski any additional bonus seconds in a three-up sprint, with Greg Van Avermaet and Patrick Bevin taking away the time bonifications.
There was no change on the general classification, meaning Kwiatkowski heads into Tuesday’s deciding 10km time trial with a slender three-second lead over Damiano Caruso (BMC Racing). Thomas sits fourth, 29 seconds off the Maglia Azzurra, and just six back on Mikel Landa’s (Movistar) podium place.
The team rode amazingly and put me in a really good position when it was necessary.
After the stage Kwiatkowski revealed he was happy to make it through a tricky penultimate test.
He said: “At the end of the day I think we have to be happy with how the stage went as it was nervous, a very hectic final and we are still leading the race. Even at the start today we had some rain after around 20 kilometres. There were a lot of climbs and tricky descents, and actually the whole race today was quite nervous with people trying to be at the front.
“The last circuit was technical with a lot of fighting for position. The team rode amazingly and put me in a really good position when it was necessary. We had some bad luck of course again with Geraint’s puncture with 10km to go. But we stayed calm and he came back at a good moment.”
With attention now turning to the time trial in San Benedetto del Tronto, Kwiatkowski will aim to hold off Caruso, and admits he is happy to go head to head with teammate Thomas.
He added: “Damiano Caruso is such a good time triallist and he is racing in his home, Italy. It's going to be difficult to fight against him, but at the end of the day I will do my best.
“I will be really happy if G can take the overall win, but he lost some time on the mountain finish [stage four].”
Stage six result:
1. Marcel Kittel (Katusha-Alpecin) 3:49:54
2. Peter Sagan (Bora-Hansgrohe) s.t.
3. Ariel Richeze (Quick-Step Floors) s.t.
4. Sacha Modolo (EF Education First-Drapac) s.t.
5. Zdenek Stybar (Quick-Step Floors) s.t.
1. Michal Kwiatkowski (Team Sky) 25:21:22
2. Damiano Caruso (BMC Racing) +3”
3. Mikel Landa (Movistar) +23”
4. Geraint Thomas (Team Sky) +29”
5. Rigoberto Uran (EF Education First-Drapac) +34”