The sixth-seeded American had 14 aces against the third-ranked Djokovic. Like No. 2 Rafael Nadal, who lost to Roddick on Thursday, Djokovic failed to break Roddick's serve.
"I can play tennis sometimes, besides the serve," said Roddick, who highlighted his volleys and passing shots.
Djokovic, who made several unforced errors, praised Roddick's tactics.
"He was really smart, he deserved it," the Serb said.
Roddick said the tournament couldn't have gone better.
"There's not much I'm not happy with as far as the week goes so far," Roddick said.
In the other semifinal match, Feliciano Lopez won five straight games in the last set to beat Nikolay Davydenko 6-4, 4-6, 7-5.
The Spaniard trailed the fifth-seeded Russian 5-2 in the decider.
"The end of the set was a little bit crazy," Lopez said. "Honestly, I think I was lucky. I came back, I don't know how."
Lopez started the match badly, losing the opening three games. Ranked 41st, Lopez has struggled since losing the 2004 Dubai final to Roger Federer.
"It's not a problem of my game, it's a problem of my head," Lopez said.
Davydenko blamed his defeat on fatigue and tactics.
"I tried to win from (the) baseline, but I can't," Davydenko said.