The Reds had grabbed a 3-2 lead in the eighth when Wilson Valdez greeted Twins starter Scott Diamond (5-4) with a single and Joey Votto followed by smacking a pitch into the left-field stands.
But the Twins came right back in the ninth against Cincinnati closer Aroldis Chapman (4-4). Joe Mauer lined a double off the left field wall with one out and Willingham then blasted 3-1 into the upper deck in left.
Jeff Burton notched his first career save despite allowing a pair of walks in the ninth as Minnesota claimed the rubber match of a three-game set at Great American Park.
Diamond yielded three runs on eighth hits over eight frames, walking one and striking out seven.
Reds starter Mike Leake (3-5) had held the Twins to two runs on five hits over eight innings.
Valdez also notched an RBI for Cincinnati, which came into the contest leading the National League Central by one game over Pittsburgh.