Kazmir (8-7) allowed four hits and did not walk a batter while throwing 97 pitches. He had gone 0-3 in his four previous starts, having last won on Aug. 4 against Miami.
Cleveland took a 4-1 lead into the eighth before a double and two walks loaded the bases for Swisher. He fouled off two pitches before sending a 1-2 offering from Tim Byrdak over the wall in left.
The loss was charged to Zack Wheeler (7-4), who gave up three runs on five hits in five innings.
Nativity scenes to be moved at Guantanamo after troops' protest
'Duck Dynasty's Phil Robertson on indefinite hiatus after anti-gay remarks