"He threw a couple strikes first-pitch, and I was aggressive," Willingham said.
The Twins, however, were unable to capitalize, giving away the lead twice en route to a sixth loss in seven tries and third in four games to the Rangers.
Their 4-3 lead after Willingham's sixth-inning homer was wiped away by a Robinson Chirinos single in the top of the seventh. An inning later, Rougned Odor's sacrifice fly brought home Leonys Martin, and the Twins were unable to mount another rally.
That final tally didn't come easy. Minnesota center fielder Danny Santana positioned himself under Odor's high fly, readying himself for the throw home as Martin readied for a dead sprint to the same place.
"He had to make a perfect throw to get me out," Martin said.
Santana's toss was just off the to the right, and Josmil Pinto didn't have a chance to apply the tag in time.
"These guys play us tough," Texas manager Ron Washington said. "This is one of the few times we've come up here and won a series. You have to play the way the game the way it's dictated, and that's exactly what we did."
Despite the eventual need for a comeback, the Rangers struck first against Twins starter Samuel Deduno.
In the second inning, the 27-year-old right-hander missed inside with a full-count fastball against Martin to load the bases with no outs. Deduno almost got out of the jam by inducing an infield fly from Chirinos and fanning Odor.
But he couldn't complete the escape act, and Shin-Soo Choo sliced a 2-2 curveball away from Jason Kubel toward the left-field line. The relay throw from Eduardo Escobar wasn't in time to get Martin. Choo had a double, and Texas had an early 3-0 lead.
"He made a good pitch on the kid, and the guy just flipped it down the left-field line," Twins manager Ron Gardenhire said. "That was a decent pitch, but he got himself in a little jam by putting some people out there. That was a big three runs."
Deduno needed 48 pitches to get through the first two innings, but he settled down over the final 3 1/3 frames, allowing one more run -- on a double from Martin and a single from Chirinos in the sixth.
His final pitch count of 101 marked the first time in 10 games that he passed the century mark. Deduno was none too pleased with his effort.
"I'm not OK," he said. "I think the team gave me a chance to win the game with four runs, but I gave up four runs. I have to be better. I know I have to be better."
Rangers starter Martinez also ran into trouble in the second inning, loading the bases on a double and two walks. But unlike Deduno, he was able to limit the damage to only baserunners.
Pinto hit into a fielder's choice (Oswaldo Arcia was thrown out at home), before Escobar smashed a line drive right at Texas first baseman Mitch Moreland. The defensive play caught Kubel off the bag, and Moreland threw him out at second to end the inning.
But an inning later, the Twins began picking at the lead.
Santana got things going with a drag bunt for a single, and Joe Mauer slapped a one-out single down the left-field line. Trevor Plouffe followed with a single that scored Santana, and then Mauer advanced to third on a deep fly out by Arcia.
With runners on the corners, Willingham came to the plate.
He jumped on Martinez' first pitch -- an 86-mph slider -- to smash a single to left field and pick up his first RBI in six games.
"You have to get your timing a little bit," Willingham said. "It takes a few games. It seems like it's getting better. Just trying to start on time."
Two innings later, with a runner on, he blasted a first-pitch fastball from Martinez over the bullpen and into the second deck in left-center. The ball traveled 436 feet, and the Twins had a 4-3 lead heading into the sixth. The home run was Willingham's first of the season and first since homering twice on Sept. 10, 2013, vs. Oakland.
The lead held until the top of the sixth, when Chirinos brought in Martin. Two innings later, Martin led off with another double, and after he was bunted to third, Odor's sac fly broke the tie.
Rangers closer Joakim Soria fanned Willingham for the final out, and picked up his 10th save.
"You've got to fight your way through these things," Gardenhire said. "We're in the ballgames -- that's what we asked for at the beginning of the season. We're in 'em. Now we got to figure out a way to win more of 'em."