Diamond (9-4) retired the first 14 Indians batters and ended up with a three-hitter.
The Canadian left-hander didn't allow a walk and struck out six, hurling 67 of his 98 pitches for strikes.
Willingham's three-run homer, his 26th home run of the season, capped a five-run fourth inning that handed Minnesota an 8-0 lead.
Tribe starter Josh Tomlin (5-8) was lit up for eight runs on 10 hits, lasting just four innings.
The third-place Indians came into the contest trailing the American League Central-leading Chicago White Sox by 3 1/2 games.