Novak Djokovic will meet Andy Murray in the final of the Madrid Open after outlasting a tenacious Kei Nishikori in Saturday's last-four contest.
World number one Djokovic kept up his record of not losing a set throughout the tournament, but was made to work hard for a 6-3 7-6 (7-4) win.
Nishikori showed no fear despite losing his previous six matches to Djokovic, particularly in a first set in which he hit 11 winners, while he saved four match points in the second.
However, as is so often the case, Djokovic came to the fore in the crucial moments and he made it 14-straight wins against top-10 opponents to book a clash with world number two and reigning champion Murray.
Nishikori had Djokovic in trouble in the opening game, but the Serbian kept his cool to save three break points.
Undeterred, the Japanese continued to go toe-to-toe with Djokovic and was particularly brave at the baseline, winning 13 baseline points in the first four games.
But Djokovic had his first sniff of a chance in game eight and, after failing with his first break point, a stunning cross-court hooked forehand brought up another and Nishikori went wide to lose serve.
Djokovic served out the opener and, with his tail up, had two break points in game one of set two, only for Nishikori to fight back for a big hold.
There was no let-up in Nishikori's tenacious approach and Djokovic escaped from a spot of bother at 0-30 down in game four.
But once again Djokovic pounced when an opportunity presented itself, breaking for a 3-2 lead with a double backhand when Nishikori was chasing shadows.
Nishikori still refused to wilt and he saved four match points before breaking back in a mammoth game 10, marking the first time Djokovic had dropped serve this week.
The second set headed for a tie-break, though, and Djokovic moved ahead before celebrating the win when Nishikori put a backhand into the net.
Djokovic will now face Murray, who beat Rafael Nadal in the other semi, for the first time since the Australian Open final and will look to improve a record of 10 wins in their past 11 encounters.