Pyatt and Fitzpatrick staked the Canucks to a 2-0 lead before a crowd of 19,161 at sold-out Scotiabank Place.
Although Daniel Alfredsson replied for the Senators, Vancouver (27-19-1) held on behind the strong goaltender of Roberto Luongo to win its third straight game and sixth in a row on the road. It was Vancouver's third win of its five-game road trip in the East.
Luongo finished with 34 saves and the Canucks, despite being badly outshot, improved to 6-1-0 against Eastern Conference teams this season.
Ray Emery made just 12 stops at the other end for the Senators (27-20-2), which had their five-game win streak stopped and fell to 10-2-1 in their past 13 games.
Pyatt and defenceman Willie Mitchell were both back in the Canucks' lineup after sitting out with injuries. Pyatt missed Vancouver's 4-0 victory over Montreal on Thursday with a thumb problem while Mitchell sat out Tuesday and Saturday's 6-1 victory over Toronto with a groin strain.
Following a scoreless first period, it was Pyatt who gave the Canucks the lead 5½ minutes into the second. During a Vancouver power play, Sami Salo's point shot hit Pyatt in the skates and the puck skipped past Emery. The play had to be reviewed, but was allowed to stand.
It stayed that way until the 13-minute mark of the second when Fitzpatrick scored his first goal as a Canuck since signing as a free agent in the off-season.
His shot from the top of the faceoff circle took a deflection before bouncing off of Emery's catching glove and in. Fitzpatrick last scored 34 games ago, while with the Buffalo Sabres on April 5, 2006, and it also came in a win over Ottawa.
The Senators tried to respond and Heatley was sent in alone by Alfredsson but rang a shot off the crossbar.
The duo teamed up again, this time with success, at the 8:13 mark of the third to make it 2-1 when Alfredsson took a pass from Heatley in the slot and steered the puck past Luongo. The goal ended Luongo's shutout streak at 154 minutes, 42 seconds.
The Senators had a good chance to tie it late in the third with a two-man advantage, but couldn't beat Luongo, who came up with big saves to deny Wade Redden and Alfredsson.
Ottawa finished 0-for-5 on the power play; Vancouver went 1-for-4.
Notes: Canucks centre Brendan Morrison appeared in his 600th NHL game. . . . Despite missing practice on Wednesday with the flu, Vancouver's Trevor Linden suited up for the game. . . . Senators right-winger Brian McGrattan played his 100th contest. . . . Ottawa travels to Boston on Saturday for its last game before the all-star break. . . . The Canucks wrap up their road trip Friday at Buffalo.