The Lampre-Merida rider out-sprinted Carlos Barbero Cuesta (Caja Rural-Seguros RGA) at the finish in Pamukkale, with late attacker Australia's Jay McCarthy (Tinkoff-Saxo) holding on to finish third.
The three-kilometre uphill slog to the finish saw many of the usual sprint trains - including Orica-GreenEDGE and Etixx-Quick-Step - drop out of contention.
"At the last kilometer I was left behind, I almost crashed twice, I had to start almost at a standstill, but I continued to see people bounce back so I said I couldn’t go wrong," said Modolo.
"Yesterday I ended up on the ground at the foot of the last hill, today I couldn’t throw away another opportunity.”
Race leader Davide Rebellin (CCC Sprandi) finished ninth on the stage to retain the lead. His main rival Kristijan Durasek (Lampre-Merida) was caught out by a late crash allowing the 43-year-old Italian to extend his advantage to 22 seconds.
The race concludes on Friday with a 184km stage from Denizli to Selçuk which ends with a three kilometre climb where the 2015 Tour of Turkey champion will be crowned.
Stage 5: 160km, Mugla - Pamukkale
1 Sacha Modolo (ITA) Lampre-Merida 4hr 06min 19sec
2 Carlos Barbero Cuesta (ESP) Caja Rural-Seguros RGA
3 Jay McCarthy (AUS) Tinkoff-Saxo
4 Michal Kolár (SVK) Tinkoff-Saxo
5 Manuel Belletti (ITA) Southeast
6 Jasper De Buyst (BEL) Lotto Soudal
7 Eduard Prades Reverte (ESP) Caja Rural-Seguros RGA
8 Daniele Ratto (ITA) UnitedHealthcare
9 Davide Rebellin (ITA) CCC Sprandi Polkowice
10 Pello Bilbao Lopez De Armentia (ESP) Caja Rural-Seguros RGA
1 Davide Rebellin (ITA) CCC Sprandi Polkowice 19hr 42min 08sec
2 Kristijan Durasek (CRO) Lampre-Merida 0:00:22
3 Eduardo Sepulveda (ARG) Bretagne-Séché Environnement 0:00:54
4 Jay Mccarthy (AUS) Tinkoff-Saxo 0:01:20
5 Serge Pauwels (BEL) MTN-Qhubeka 0:01:38
6 Enrico Barbin (ITA) Bardiani CSF 0:01:39
7 Daniele Ratto (ITA) UnitedHealthcare 0:01:42
8 Alex Cano Ardila (COL) Colombia 0:01:56
9 Mirko Selvaggi (ITA) Wanty-Groupe Gobert 0:02:11
10 Adam Hansen (AUS) Lotto Soudal 0:02:12