The win moved the Canucks (31-21-4) into a tie for first place in the Northwest Division with the Calgary Flames.
The Canucks' win against the Southeast Division-leading Thrashers (30-19-9) made up for being shut out by the lowly Chicago Blackhawks on Wednesday night.
Markus Naslund scored Vancouver's other goal.
Jon Sim and Ilya Kovalchuk replied for Atlanta, which was outshot 33-29.
It was the teams' first meeting since Feb. 13, 2004, a result of the lockout in 2004-05 and rare East-West crossovers in NHL scheduling.
Morrison gave the Canucks a 1-0 lead 1:44 into the game as he fired home Linden's short pass from the right-wing boards as Vancouver outshot the offensively-gifted Thrasher 12-6 in the first 20 minutes.
Vancouver's lead could have been higher, but Brad Moran and Mattias Ohlund both hit goalposts.
Naslund put the Canucks ahead 2-0 at 9:02 of the second period as he fired in a slapshot from the point after taking a pass from Moran during a Canucks power play. Bobby Holik was off for holding at the time.
The assist was Moran's first NHL point since Jan. 27, 2004, when he had his only other two NHL points, a goal and an assist, as a member of the Columbus Blue Jackets.
Only 10 seconds after Naslund's goal, Morrison gave the Canucks a 3-0 lead, on a mid-air deflection of Sami Salo's point shot. But Sim reduced Atlanta's deficit to 3-1 about four minutes later as he backhanded his own rebound past Vancouver goaltender Roberto Luongo.
Kovalchuk brought the Thrashers to within 3-2 during a five-on-three power play at 14:31 as he fired a high slapshot from the blue-line past Luongo. Kovalchuk's 32nd goal of the season came after Atlanta coach Bob Hartley called a timeout 59 seconds earlier to rally his squad after Vancouver's Mattias Ohlund was penalized for holding and Matt Cooke was already in the box for
NOTES: Forward Brandon Reid also played for Vancouver after being called up from Manitoba on Friday. . . . Canucks winger Jan Bulis sat out with a sore shoulder while struggling centre Marc Chouinard was a healthy scratch. . . . The Thrashers acquired forward Eric Belanger from the Nashville Predators on Saturday in exchange for defenceman Vitaly Vishnevski. It was the second time in two days that Belanger was traded. On Friday, he was sent to Atlanta from the Carolina Hurricanes for Josef Vasicek. The Thrashers also claimed forward Denis Hamel off waivers from Ottawa on Saturday. . . . Atlanta centre Steve Rucchin sat out after he sustained an undisclosed upper-body injury in the second period of Thursday's game against Colorado.