The 14-time Grand Slam champion was too clinical for the Canadian, winning 6-4, 7-6 (9/7), 6-4 in two hours 44 minutes and will play Bulgaria's 15th seed Grigor Dimitrov in Friday's semi-final. He leads Dimitrov 7-1.
Nadal kept alive hopes of a much-anticipated ninth Grand Slam final with his great rival Roger Federer as the tournament got down to the last four.
It is the Spanish great's first Grand Slam semi-final appearance since his last 2014 French Open triumph after recent injury setbacks.
"I knew that there were going to be tough moments in the match with a player like him, that he has one of the top serves in the tour."
More From This Section
It was the 30-year-old Spaniard's fifth Australian Open semi-final and his 24th in Grand Slams.
Nadal is bidding to win his second Australian Open title and become the first man in the Open Era -- and only the third man in history -- to win each of the four Grand Slam titles twice.
A title in Melbourne would lift Nadal to fourth on the world rankings.
Nadal began the night quarter-final better and earned a break point in the fifth game before breaking when the Canadian over-hit a smash at double break point in his next service game.
He safely negotiated the rest of his service games and took the opening set with an overhead smash.
Nadal fought off a break point in a five-deuce service game early in the second set as Raonic began to serve better.
Raonic had three more set points in the tiebreaker and blew them all before Nadal took a two sets lead on his first set point as the match swung decisively the Spaniard's way.
Raonic was wayward with his volleying and made errors on crucial points to take the heat off Nadal.
There were signs of Raonic physically in trouble and he was wincing in between points.
The end came quickly when Raonic fell three match points down in the 10th game and Nadal won the rally to win which he greeted with his arms raised in the air.