Thomas was just three seconds adrift of the time set by stage winner Tony Martin (Etixx-QuickStep) and second-placed Adriano Malori (Movistar), who both clocked 21 minutes and 51 seconds on the 19-kilometre course.
Defending Algarve champion and road race world champion Michal Kwiatkowski (Etixx-QuickStep) placed fourth on the stage.
Welshman Geraint Thomas takes Volta ao Algarve race lead after stage victory
The Sky man had set the fastest time at the 10km intermediate time check before fading slightly in comparison to Martin over the remainder of the course from Vila do Bispo to Cabo de São Vicente.
Thomas took the race lead on Thursday after taking a solo win on stage two. He now leads runner-up Martin by 30 seconds.
Just two stages of the race remain: a tough 216km route from Tavira with a mountain finish at Malhão on Saturday; and Sunday’s flatter finale from Almodôvar to Vilamoura.
Thomas said via Sky’s website that he will try and defend the race lead: “Saturday is a long, difficult stage, with a really testing finish. Having Richie [Porte] and a few of the other guys close by on the GC means we’ll have plenty of cards to play, and that’s always a nice situation to be in.”
Volta ao Algarve 2015, stage three: Vila do Bispo to Cabo de São Vicente, 19km
1. Tony Martin (Ger) Etixx-QuickStep in 21-51
2. Adriano Malori (Ita) Movistar at same time
3. Geraint Thomas (GBr) Sky at 3 secs
4. Michal Kwiatkowski (Pol) Etixx-QuickStep at 9 secs
5. Anton Vorobyev (Rus) Katusha at 19 secs
Overall classification after stage three
1. Geraint Thomas (GBr) Sky
2. Tony Martin (Ger) Etixx-QuickStep at 30 secs
3. Michal Kwiatkowski (Pol) Etixx-QuickStep at 39 secs
4. Rein Taaramae (Est) Astana at 53 secs
5. Luis Leon Sanchez (Spa) Astana at 1-02