The Twins saw a 2-1 lead turn into a 4-2 deficit in the sixth inning, but regained the advantage in the seventh.
Alexi Casilla reached on a one-out single against Rays' starter Matt Moore and Brandon Gomes came on in relief. Gomes allowed a single to Denard Span and walked Jamey Carroll before giving way to Joel Peralta.
After Peralta got Joe Mauer on a fly ball to shallow left for the second out of the inning, Willingham came through with his double on a 1-2 pitch.
That made a winner out of Matt Maloney (1-0), who worked a scoreless inning in relief of Liam Hendricks. Matt Capps turned in a perfect ninth for his fourth save.
Gomes (0-1) was charged with the loss after throwing just nine pitches.