Elia Viviani sprinted to sixth place following a technical finish to the penultimate stage at Tirreno-Adriatico, while Geraint Thomas held firm on the general classification.
Fernando Gaviria (Quick-Step Floors) narrowly held off Peter Sagan (Bora-Hansgrohe) at the line, with the world champion also putting in an attack on the day's final climb.
Thomas crossed the line safely after 168 kilometres, holding station in sixth place overall, 1:23 back on the blue jersey of Nairo Quintana (Movistar). The GC will be decided in a 10km time trial on Tuesday.
Diego Rosa was also in the thick of the action, going down on a descent with 78km to go, but was able to brush himself off and rejoin the bunch.
The young Italian then hit the front to help contribute to the peloton's chase, shutting down the eight riders in the break alongside Dimension Data and Quick-Step Floors.
Elia Viviani's sprint data courtesy of Velon:
Sprint time: 18 seconds
Speed: 63.1km/h (Max: 66.4km/h)
Heart Rate: 189bpm (Max: 190bpm)
For more details and live in-race data visit: velon.cc
It's another placement and a good feeling ahead of Milan-San Remo. We're just missing the victory!
1. Fernando Gaviria (Quick-Step Floors) 4:09:31
2. Peter Sagan (Bora-Hansgrohe) s.t.
3. Jasper Stuyven (Trek-Segafredo)
4. Matteo Trentin (Quick-Step Floors)
5. Jens Debusschere (Lotto Soudal)
6. Elia Viviani (Team Sky)