MINNEAPOLIS -- The Cleveland Indians had lost three in a row and five of their previous six, with another strong start to the season threatening to start swirling down the drain.
They appeared headed toward another loss when the bullpen faltered in the eighth inning before Shin-Soo Choo came to the rescue.
"Especially coming off our first three-game losing streak, we blew the lead it would have hurt more," Indians manager Manny Acta said. "Those are the type of things that tend to carry over. It was nice that we were able to come back, especially playing on the road. It was very important to do that so that things don't start snowballing."
The Indians won 30 of their first 45 last season, becoming one of the surprise teams in the league as they grabbed first place in the division right out of the gates before fading to the Detroit Tigers. They started this season 17-10, and are hoping to stick around the race a little longer this time.
Gomez did his best to stop the skid, allowing one unearned run and three hits with three strikeouts and two walks. But Vinnie Pestano gave up an RBI double to Josh Willingham in the eighth and Nick Hagadone served up a two-run homer to Ryan Doumit to tie the game 4-4.
Chris Perez pitched the ninth for his AL-leading 12th save in 13 chances.
"We needed to stop the losing streak and Gomez did a good job," Choo said.
The Twins managed only five hits and Capps allowed a run for the first time in six outings.
The 24-year-old Gomez got off to a dazzling start to the season with the first-place Indians, going 2-1 with a 2.82 ERA in his first five outings. The first two of those came in relief for the team's No. 5 starter, thanks to a rainout, and he pitched well through his first four starts.
But the White Sox roughed up Gomez his last time out, tagging him for eight runs in 6 2/3 innings. The right-hander was able to stabilize himself on Monday night to put the Indians in position to end a three-game losing streak -- their longest of the season.
"Today, I tried to be aggressive because last time I was a little too fine with the hitters," Gomez said.
Darin Mastroianni scored on a throwing error from catcher Carlos Santana to put the Twins up 1-0 in the third, but that was all they could muster against Gomez, who wiggled out of another jam in the fifth.
"It's always more important when it's a young guy that's fighting his way up here at the back of the rotation," Acta said. "He's pitched so well since spring training. (The White Sox game) was his roughest outing. I'm sure that this is going to be very good for his confidence."
Santana and Travis Hafner had RBIs in the fourth before Kotchman smashed his third homer of the year well into the seats in right field in the fifth for a 4-1 lead.
Twins starter Carl Pavano gave up four runs and six hits in six innings while pitching through some soreness in his shoulder.
He was relieved in the seventh by Francisco Liriano, the lefty's first appearance out of the bullpen since being demoted from the starting rotation last week. Liriano went 0-5 with a 9.45 ERA in his first six starts. Liriano pitched two scoreless innings with three strikeouts.
Indians 3B Jack Hannahan did not play because of a sore back. ... Twins manager Ron Gardenhire said INF Alexi Casilla is the team's utility player after the shuffle that brought Dozier up from Triple-A and moved Jamey Carroll to 2B. Gardenhire planned to play Casilla on Tuesday. ... It was Liriano's first relief appearance since Sept. 24 when he gave up five earned runs in one-third of an inning and took the loss against the Indians. ... RHP Jason Marquis (2-2, 6.26 ERA) will pitch for the Twins on Tuesday against Cleveland RHP Derek Lowe (5-1, 2.47). The 38-year-old Lowe is 3-0 with a 1.75 ERA in 25 2/3 innings over his past four starts.