Djokovic, who won a sizzling quarter-final against Spain's David Ferrer, was subjected to an onslaught of power by Raonic, but eventually got the upper hand to book his place against top seed Rafa Nadal after the world No 1 made light work of Bulgarian Grigor Dimitrov, winning 6-2, 6-2.
It was another pulsating and punishing match for Djokovic against the 23-year-old Raonic - a clash of styles lasting three hours.
"It's a big win because it gives me strength and belief that I can hopefully carry towards the final and the rest the season," said Djokovic, who is bidding for a third Rome title. "I can't remember the last time I felt so helpless in a return game. I couldn't predict his serve at all."
He started in low-key fashion, apparently content to bide his time as Raonic unleashed serves at 230kmh. The 26-year-old looked to have the first set sewn up when he won the first three points in the tie-break, only for Raonic to fire back with an incredible six-point streak on his way to sealing an opening set in which he flung down eight aces.
Djokovic was in the box seat in the second set when he finally broke Raonic's serve in the fourth game after an hour and 42 minutes, only for the Canadian to break right back in a game that contained an improbable backhand drop shot. The set drifted to another tie-break, and despite Raonic fighting back from 2-0 down, Djokovic held his nerve to take it 7-4 and set up a decider. Raonic dropped serve immediately in the third and that effectively spelled the end of his challenge.
For Djokovic it will be his fifth final in the Italian capital, but he will up against Nadal who will be seeking a record eighth. While he had survived a scare against Britain's Andy Murray on Friday, Dimitrov had been handed his semi-final spot when Tommy Haas retired after losing the first set of their quarter-final, but it was Nadal who looked the fresher of the two.
The 27-year-old barely put a shot out of place in a masterful first set display that lasted just over 30 minutes.
It did not get much better in the second set for 23-year-old Dimitrov, who immediately lost his serve and failed to get any sort of foothold in the match against an opponent who had beaten him on their four other meetings.
Despite the disappointment of missing out on the semis, Murray believes he is beginning to regain the form which saw him win four titles last year, including Wimbledon, and equal his highest career ranking of second.
The 27-year-old Scot, still finding his feet on the court after under-going back surgery last September, took Nadal to three sets, blowing the Spaniard away in the opening set and going 4-2 up in the third, before eventually succumbing to a 1-6, 6-3, 7-5, defeat.
"I felt going into the French I would be playing good tennis," he said. "I don't feel people have respected the severity of back surgery, it takes time, but I feel closer to where I want to be. That was probably the best I have hit the ball on clay for a while and the best I have felt physically since the surgery. "
In the women's event, world No 1 Serena Williams gained revenge for her Australian Open fourth-round defeat by Ana Ivanovic, beating the Serb 6-1, 3-6, 6-1, to set up a final against local favourite Sara Errani.
Errani became the first Italian to reach the final in nearly 30 years after she saw off Serbia's twice former champion Jelena Jankovic 6-3, 7-5, in front of a passionate Foro Italico crowd.
Meanwhile, Heather Watson faces having to play twice today if she is to win the Prague Open after her last-four match against Hungarian Timea Babos became a victim of heavy rain yesterday.