Horvat, who had gone 27 games without a goal before scoring in Monday’s 3-2 loss to Arizona, took a pass from Baertschi on a late power play after Carolina defenceman Jaccob Slavin was whistled for delay of game and fired home his fifth of the season.
Horvat gave Vancouver a 2-1 at 7:15 of the third by swooping in on Lack for his fourth of the year.
A fan favourite in Vancouver before getting dealt to Carolina when the Canucks decided to go with Miller and Markstrom as their goaltending duo, Lack stopped Horvat on three great scoring chances in the first period.
Lack received a nice hand from the fans at Rogers Arena in his return.
The Hurricanes got the Horvat goal back with exactly eight minutes left in the third when Staal jumped on a loose puck off a broken play and snapped his eighth of the campaign.
After registering just two shots in the first, the Hurricanes put in a much better effort in the middle period and grabbed the lead while shorthanded at 8:02 on a shot that Markstrom would probably like to have back. Staal stole the puck at the Carolina blue line and moved into the Vancouver zone before feeding Liles, whose weak shot fluttered under Markstrom's glove for his second goal of the season.
The Canucks got that one back with 2:21 left in the second by catching the Hurricanes on a bad line change. Adam Cracknell floated a pass up to Baertschi -- who returned to the lineup after missing the last two games because of a neck injury -- and he beat Lack over the glove for his sixth.
Horvat had an good opportunity to open the scoring on a partial breakaway less than four minutes in, but Lack was there with a poke check. Horvat had another break later in the period only to see his former teammate again close the door.
The Hurricanes looked sluggish early, but their one chance came on a Chris Terry breakaway that Markstrom stopped with his pad.