Jamie Benn also scored midway through the third for the Stars, who are 3-1-1 in their last five games.
Ben Bishop made 24 saves in his first start since returning from a lower-body injury that kept him sidelined for five games.
Radulovs winner came with 3:23 left in the game. Benn found the Russian winger skating in alone in the slot, and Radulov backhanded it in to quiet the crowd.
Nilsson was impressive in the first. He faced only six shots, but made several strong saves, including a jaw-dropping glove grab to deny Dallas forward Tyler Seguin.
The Canucks got on the board with just over four minutes to play in the first. Winger Antoine Roussel, a former Star, broke away along the wing and lobbed a rolling puck to Horvat, who got enough stick on it to beat Bishop.
Bishop was solid at the other end in the second when he stopped Brock Boeser on a breakaway. Nilsson did the same to Blake Comeau with a glove save. The Canucks netminder faced the Stars power play in the final two minutes of the second, but preserved the one-goal lead.
Seguin and Benn, doing most of the offensive work with seven of the Stars 17 shots through two periods, swarmed Nilsson early in the third. But a tripping penalty on Jason Spezza put Dallas on the defensive, forcing the Stars to kill Vancouvers fourth power play of the game.
Benn finally tied it 1-1 at 10:19 of the third. After a shot from the point by Miro Heiskanen bounced through traffic at the net, Benn swooped around the back of the net and banged in the loose puck at the side.
Stars: Host Edmonton on Monday night.
Canucks: Host Minnesota on Tuesday night.