Buehrle (6-8) baffled the Blue Jays on seven hits, striking out seven while walking two in breaking a personal four-start losing streak.
The left-hander tossed 74 of his 114 pitches for strikes as the Marlins notched their first victory since June 16. They won for only the second time in 11 games overall.
Toronto starter Jesse Chavez (0-1) was lit up for six runs on seven hits over six frames.
Benedict Cumberbatch's dramatic reading of R. Kelly lyrics is just what you need
Kate Middleton recycles dress at movie premiere