In more windy conditions and after a delay of nearly two hours because of a flooded course, the current Irish and KLM Open champion shot a one under par 71 to take over at the top from Gregory Bourdy.
The Frenchman did not break 80 as he slipped to joint 21st, but after moving three clear Dyson was furious with his finish.
He was in the back bunker for two, failed to get out and then took three more.
Dyson dropped back to five under and will resume only one ahead of Spain's Pablo Larrazábal and Dane Søren Kjeldsen.
Victory could take the 34 year old into a Ryder Cup qualifying position.
Dyson said: “17 and a half great holes. I played some great golf.
“I drove the ball fantastic today, long and straight. I’m only disappointed with the last.
“I just got a flyer with my second shot, a six iron, and had 180 yards to the pin but it just came off like a bullet, I hit a poor bunker shot, I just quit on it, no excuse. I had a good second bunker shot but it just ran out and the putt jumped and lost its momentum.
“I’m just really disappointed, as I should be out of sight the way I am playing.
“Given the conditions, my control was excellent. Almost all my shots today, except for the last, were straight down the flags.
“A third round under par around here in this type of conditions is still pretty good, but a little sour taste.
“I’ve still got a one shot lead and while I should be out of sight in leading, I will have to go out and enjoy the challenge again.
“There will be good crowds tomorrow and Pablo is a good lad, I have a lot of respect for him and I’m looking forward to playing with him. Hopefully we will bounce off each other and it will be a good finish.”
Dyson's day did not start well when he failed to get up and down from a bunker on the first.
But as others really struggled in the wind the highest-ranked player in the field - he is currently 36th in the Official World Golf Ranking - birdied three of the next four and then added another by almost spinning his approach to the 422 yard tenth into the hole.
There were also some great scrambles for par, his new belly putter rescuing him on a number of occasions, but he then missed a two foot putt to bogey the long 13th.
Two-putting the long 16th made amends for that, but then came the mess-up on the 18th.
Larrazábal, joint third at El Prat last May, shot 69 to take over as the leading home hope in an event celebrating its 100th anniversary this year.
The former Open de France winner, who beat Sergio Garcia in a play-off for the BMW International Open in Munich last season, had four birdies in six holes around the turn, but dropped a shot at the last.
"Only one bogey - it's a great round," said Larrazábal. "I like it when the course is challenging. I don't like it when the winner is 25 under."
Kjeldsen, round in 71, won the Open de Andalucia on the course three years ago, but that was the 36 year old's last European Tour success.
Dyson had been tied for second at halfway with 19 year old Italian Matteo Manassero, Rock and Jorge Campillo.
The Challenge Tour graduate from Caceres north of Seville had a 73 to drop to fourth place, but Rock and Manassero both signed for 76 and fell back to joint 12th five strokes behind.
Leading third-round scores from the Spanish Open on Saturday (GBR and IRL unless stated, par 72):
211 Simon Dyson 71 69 71
212 Soren Kjeldsen (DEN) 71 70 71, Pablo Larrazabal (ESP) 71 72 69
213 Jorge Campillo (ESP) 68 72 73
214 Alejandro Canizares (ESP) 74 72 68
215 Francesco Molinari (ITA) 70 71 74, Thorbjorn Olesen (DEN) 73 72 70, Marcel Siem (GER) 71 72 72, Nicolas Colsaerts (BEL) 72 72 71, Peter Lawrie 71 73 71, Graeme Storm 70 71 74
216 Sam Hutsby 70 73 73, Carlos Del Moral (ESP) 74 73 69, Robert Rock 68 72 76, Matteo Manassero (ITA) 70 70 76, Darren Fichardt (RSA) 75 68 73, Thongchai Jaidee (THA) 73 69 74
217 Joel Sjoholm (SWE) 75 72 70, Shaun Micheel (USA) 67 77 73, Matthew Baldwin 69 73 75
218 Jeev Milkha Singh (IND) 73 74 71, Rafael Cabrera Bello (ESP) 70 73 75, Gregory Havret (FRA) 72 74 72
219 Gary Orr 70 72 77, Gareth Maybin 73 75 71, Lee Slattery 74 71 74, Romain Wattel (FRA) 73 74 72, Richard Green (AUS) 76 72 71, Markus Brier (AUT) 74 73 72, Borja Etchart (ESP) 73 74 72, Gregory Bourdy (FRA) 73 66 80
220 James Kingston (RSA) 74 68 78, Marc Warren 72 74 74, Fabrizio Zanotti (PAR) 72 73 75, Danny Willett 68 73 79, Simon Thornton 73 73 74