Andy Murray set up a titanic Wimbledon final showdown with Novak Djokovic as the world number two beat Polish 24th seed Jerzy Janowicz 6-7 (2/7), 6-4, 6-4, 6-3 in a bad-tempered last four clash.
Murray remains on course to end Britain's 77-year wait for a male winner of the Wimbledon singles' crown, but the Scot had to do it the hard way once again.
Just 48 hours after battling back from two sets down to defeat Fernando Verdasco, Murray survived an early pummelling from Janowicz and then a controversial decision to shut the Centre Court roof due to bad light when he had just taken a two sets to one lead.
Murray was furious with Janowicz, who had been pleading for the roof to be shut, and referee Andrew Jarrett, claiming there was still time to finish the match in daylight.
But he returned to finish the job, sealing his second successive appearance in the All England Club final thanks to 20 aces and 18 winners in two hours and 52 minutes of nerve-wracking action.
"There was still 45 minutes of light left," Murray said of the roof controversy.
"This is an outdoor event and I believe you should play as much as possible outdoors.
"I had 20 minutes, took a shower and got back to work. He was on his phone to someone. That's the way he is, he plays loose on the court as well.
"I'm delighted. He's very talented and unpredictable, he's got a huge serve and he didn't give me much rhythm.
"But after I got back from 1-4 down in the third set I felt the momentum was with me."
An unrepentant Janowicz added: "I don't care if he was angry or not. What I can do? I care about myself.
"Andy was complaining that it was really dark as well. But I don't feel like losing against the runner up, so I wish him good luck."
Murray, who missed the recent French Open due to injury, has now reached the final in each of his last four Grand Slam appearances.
However, that will mean little to the 26-year-old unless he avenges last year's tearful final defeat against Roger Federer and emulates Fred Perry's 1936 Wimbledon triumph.
Murray's seventh Grand Slam final on Sunday will be his fourth meeting with world number one Djokovic with a major title on the line.