Neil Walker's second-inning double was the only hit off Sanchez (8-7), who retired 16 of the final 17 batters he faced.
The right-hander walked three and fanned 11 while throwing 86 of his 119 pitches for strikes as the Marlins clinched their three-game series against the Pirates.
Buck's two-run single in the third put the Marlins up 2-0 and Donnie Murphy added a sacrifice fly in the frame.
Pittsburgh's Jeff Locke (0-1) took the loss in his major league debut, yielding three runs on five hits in a five-inning effort.
18-year-old elf alleges mall Santa pinched her buttocks on the job
Man behind Doritos Locos Tacos passed away on Thanksgiving