Garcia, who shared the lead after round two, completed 54 holes at 16-under-par 197. Garcia has six European Tour wins, but hasn't won on this tour since the 2005 European Masters.
Soren Kjeldsen, who shared the lead after each of the first two rounds, posted a 1-under 70 and is tied for second place at minus-12. He was joined there by Simon Dyson (68), Peter Hedblom (68) and David Lynn (68).
Richard Finch, who shared the second-round lead with Kjeldsen and Garcia, managed an even-par 71. That dropped him into a share of sixth at 11-under-par 202, where he stands alongside Stephen Gallacher (65).
Garcia flew up the leaderboard on the front nine. He carded his first birdie on the par-3 second. After a pair of pars, Garcia caught fire.
The Spaniard connected on birdie chances at five and six to move to 14 under. Garcia then birdied the seventh and eighth, both for the third straight round. The birdie on eight was his best of the day as he holed out from a greenside bunker.
Around the turn, Garcia coughed up his lead. He stumbled to a bogey on the 10th and dropped another shot at 11 and he was joined in the lead at 14 under by Finch. However, Finch dropped three shots in four holes from the 12th to fall down the leaderboard.
For the third day in a row, Garcia birdied the par-5 13th at Club de Campo del Mediterraneo.
Garcia got to 16 under with a birdie on 14. He poured in a 20-footer for birdie at 16, but missed a short par putt on 17 to finish three clear.
'Things are getting better as the week has gone on. Other than a couple holes today, I felt like I hit the ball nicely,' Garcia said. 'I'm just looking forward to doing the same thing (Sunday).'
Kjeldsen parred the first 10 holes before carding two birdies and a bogey over the final eight for his 70.
Dyson moved up the leaderboard with three birdies on the front side. After posting his fourth birdie of the day on the 13th, he gave that shot back when he bogeyed No. 15.
Hedblom has taken advantage of the same holes all week it seems. He birdied the first and 13th for the third straight day. He birdied eight, 10 and 14 for the second times in three days, but also bogeyed No. 6 for the second day in a row. Hedblom also stumbled to a bogey on 11.
Lynn was keeping pace with Garcia as he birdied four of the first 13 holes to move to 13 under. He parred five straight from the 14th before tripping to a bogey at the last.