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.
Teacher apologizes for showing sexual image of herself in class
Interpol investigating stolen passports on missing flight