The 20th seed proved too powerful for the Pole over nearly two hours to become the first Spanish woman to reach the Wimbledon final since Arantxa Sanchez-Vicario in 1996.
She will face either five-time champion Serena Williams or Maria Sharapova in Saturday’s final.
Muguruza had to endure some nervy moments before securing victory, seeing a 3-1 lead in the second disappear against the three-time semi-finalist.
But the Spaniard, who has only one tour title to her name, secured victory with a power-packed flowing forehand, her 39th winner of the contest.
“I have worked all my life for this, I have no words,” said 20th seed Muguruza who will climb into the top 10 for the first time next week as a result of her performance at Wimbledon. “It was a tough match. Agnieszka has so much experience but I just wanted to keep fighting.”
Muguruza showed no early nerves in the biggest match of her career and seemed to be on course for a quickfire victory when she powered through the first set and moved 3-1 ahead in the second.
But wily 13th seed Radwanska dug her heels in and the momentum shifted her way with a run of six successive games.
Muguruza, the youngest of the semi-finalists, never lost heart though despite going down an early break in the decider, and after winning a tense service game at 2-2 she broke Radwanska and then held her own serve for a 5-2 ahead.
There were understandable nerves as Muguruza, 21, served for the match at 5-3, not helped by a foot-fault and a double-fault, but she clinched victory on her first match point with a swinging forehand volley after a powerful first serve forced Radwanska into a desperate high return.
Catch all the Wimbledon action LIVE on FOX Sports Play