Rafael Nadal saved three match points as he emerged from a marathon, four-hour semi-final with a 3-6, 7-6 (7-5), 7-6 (11-9) win over Novak Djokovic for a spot in the title match of the Madrid Masters.
Spain's world number one has now won 33 straight matches on clay and stands 19-0 this season on the surface. He has notched repeat victories in Monte Carlo, Barcelona and Rome, beating Djokovic in the two Masters-level events.
The world number one, seeking an historic fifth straight at the French Open starting May 24, will play for the Madrid title against either Roger Federer or Juan Del Potro.
Djokovic, fourth in the world with a chance to move back to third had he reached the final, was crushed by what might have been.
"I played one of my best matches ever. I was a couple of points from the victory. I even played a few points above my limits, and I still didn't win," he said.
The Serb now stands 4-14 against Nadal.
"This has happened too often," Djokovic said. "I gave my maximum today. I had match points and didn't win. It's frustrating. I just don't know what to do to beat him. It's very disappointing to play as well as I have and still lose the match."
Nadal lost his first set of the week as Djokovic prevailed in the first but struggled to level after a second set lasting more than 90 minutes.
The glacial pace continued in the third, with Djokovic repeatedly taking massages and treatment on his knees and Nadal also seen by the trainer for a re-taping.
The drama lifted in the deciding final set before Nadal benefited from a final Djokovic error, his 43rd of a long contest, compared to 50 for the Spaniard.
Nadal stands 150-4 on clay since 2005 and has won 27 of 28 clay semi-finals. His lone defeat came in 2003 as a teenager in Umag, Croatia.