The 20-year-old Raonic, coming off his first tournament win last week at the San Jose Open, fired 23 aces in the earlier semi-final to beat American Mardy Fish [ Images ] 6-4, 4-6, 6-3.
Del Potro, who held serve en route to his second semi-final in two weeks, was broken by Roddick in the second game of the match as the American established a 3-0 lead in eight minutes.
Roddick, seeking the 30th title of his career, had lost his three previous matches against del Potro but held on for the victory in one hour and 34 minutes.
Raonic, who burst onto the scene by reaching the fourth round of last month's Australian Open [ Images ], saved five of the six break points he faced and won 85 per cent of points behind his powerful first serve to dismiss Fish in just under two hours.
The Canadian, who started the year ranked 159th and will break into the top 50 next week, said he is starting to tire after a trio of three-set wins in four days but will be ready to play in his second straight final.
"I am starting to feel the fatigue but I don't think it's anything I can't overcome," Raonic said in an interview posted on the ATP website.
"I've put in the hours and I've done the work for these kinds of moments so I look to relish off them and use all that effort I've put in and this is the time to shine," he added.