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.
Handler slams Piers Morgan: 'You're a terrible interviewer'
McPhee, Cokas 'working on their marriage' after affair