Caufield's goal came after Sean Monahan tied it 4-4 with 6:03 remaining in the third.
Arber Xhekaj scored at 17:58 for the 6-4 final.
Monahan and Nick Suzuki each had a goal and an assist, Jordan Harris had two assists, and Sam Montembeault made 21 saves for the Canadiens (2-4-0).
Roby Jarventie scored his fourth goal of the preseason, and Mads Sogaard made 32 saves for the Senators (7-1-0).
Each team was playing its final game of the preseason.
Juraj Slafkovsky scored 33 seconds into the first period to give the Canadiens a 1-0 lead.
Parker Kelly responded at 1:44 to tie it 1-1, but Michael Pezzetta put Montreal back in front 2-1 at 14:04.
Suzuki pushed it to 3-1 at 8:26 of the second period.
Dominik Kubalik scored 47 seconds later to cut it to 3-2.
Jarventie tied it 3-3 at 6:05 of the third period, scoring five-hole from in front after getting behind the defense. Ridly Greig then scored 16 seconds later to put Ottawa ahead 4-3.