"I was yelling at it to get up, and it carried," he said. "It carried for me, which was nice."

Nice for Upton, whose struggles through the first six weeks have changed the dynamic of the Diamondbacks' lineup.

And, of course, nice for the Diamondbacks, who didn't just seem desperate for a win. They seemed desperate for this kind of win, a 9-7, Coors Field Special over the Colorado Rockies on Thursday that showcased the kind of attributes that defined them last season but have been alarmingly absent this season.

They needed to rally twice -- once from a three-run deficit, another time after blowing a three-run lead -- but they survived, gaining another split of a two-game series with a win that wasn't pretty but felt good just the same.

"It's something that we pride ourselves in never giving up," closer J.J. Putz said. "We're going to play right down to the last out. We needed every bit of it today."

The Diamondbacks trailed 3-0 after two innings and 4-1 after five. But given the way their lineup has struggled most of the past month, it felt more like they were down 10 runs.

But it was 4-3 heading into the top of the eighth, and when the Diamondbacks scored four times on two walks and four singles, they suddenly had a rare late-inning lead.

But eighth-inning man David Hernandez (two hits, three walks) couldn't protect it, though he didn't get much help from third baseman Ryan Roberts, who misplayed what should have been an inning-ending ground ball.

It was tied at 7 in the ninth when Upton came to the plate with a man on third against Rafael Betancourt. Behind in the count 1-2, Upton got a fastball up and away and hammered it to right field for just his fourth home run of the year.

"Just being able to put all my struggles aside and come up big for the team, that's always the goal," Upton said. "But it's not always that easy. When you can get it done, it always feels good."

Even with the win, the Diamondbacks might be looking at possible changes to their roster beyond just the activation of Chris Young from the disabled list, a move that sounds likely to happen Friday.

General Manager Kevin Towers arrived at Coors Field a little more than an hour before first pitch and he said after the game that he expected it to be a late night. The team was scheduled to fly to Kansas City, and Towers said he expected to hold meetings in a hotel suite with Kirk Gibson and his coaching staff until late into the night.

"I can't tell you if there's going to be a move or not," Towers said. "There may be none. We just kind of want to reevaluate where we're at. If there's any other options out there that might make us better or spark the club a little bit more."

He said he's been in touch with his scouts and farm director Mike Bell. He said Gibson has spoken with Double-A manager Turner Ward and Triple-A manager Brett Butler.

"I know he's got a pretty good lay of the land," Towers said.

Even though he enjoyed seeing his club come back and win, it doesn't ease the sting of previous losses.

"(Wednesday night's loss) wasn't so fun to watch," Towers said.

Diamondbacks rewind

Diving catch: After the Rockies put together a rally to tie the game at 7 off reliever David Hernandez in the eighth, they still had the bases loaded with reliever Brad Ziegler entering the game to face Wilin Rosario.

With Rosario coming to the plate, right fielder Justin Upton readied himself. A night earlier, Rosario had faced Ziegler and hit a liner that Upton caught.

"I had a feeling that was his approach, to stay inside of him and drive something the other way," Upton said.

That's exactly what Rosario did, lining the first pitch into shallow right, where Upton came on to make a lunging catch.

"I was able to get a good jump on it," he said.

Hairy ninth inning: Things didn't quite go the way closer J.J. Putz would have liked, but he got the job done, closing out the ninth inning without allowing a run.

Singles by Carlos Gonzalez, Troy Tulowitzki and Todd Helton loaded the bases with nobody out, bringing up the pitcher's spot, where Rockies manager Jim Tracy, who already had emptied his bench, had no choice but to send in Friday night's starter, Alex White, to pinch-hit.

White worked the count full -- not taking the bat off his shoulder in the process -- before taking a called third strike for the first out.

"I figured after about the second pitch that I didn't think he was swinging," Putz said. "That's probably the worst thing you can think. On 3-2, made a good pitch and got the call."

Double-play ball: And after that, it was over in a blink. Putz threw a first-pitch sinker to Ramon Hernandez, who bounced it to third, where Roberts started a game-ending double play. Just one inning earlier, Roberts had booted what should have been an inning-ending ground ball.

"After what happened the inning before," Putz said, "it shows a lot of character in Ryno to bounce back."

View from the press box

Not long after Justin Upton saved the game with a sliding catch, he won it with an opposite-field home run. There's a lot of good in that statement. Not only was he a positive contributor in a win, but just the fact that he drove the ball with authority to right field is usually a sign that he's starting to come around. And, oh, how the Diamondbacks need him to start hitting. We'll see if this is the spark that gets him going.

Up next

Kansas City Royals

Royals update: Not much has gone right for the Royals so far this season. It started in spring training when they lost C Salvador Perez to a knee injury and RHP Joakim Soria to an elbow injury. More recently, they lost LHP Danny Duffy, also to an elbow injury. 1B Eric Hosmer, who is expected to be a key part of the Royals lineup for years, is struggling, hitting just .174 with five home runs. LF Alex Gordon has a .250 average. RF Jeff Francoeur isn't doing much, either, hitting .248 with one homer. 3B Mike Moustakas has been a bright spot, with a .303 average, 11 doubles and five homers. Their pitching staff ranks 12th in the league with a 4.37 ERA. The starters have a 5.21 ERA (12th) and relievers a 3.30 ERA (5th).

Thursday, May 17, 2012 - Diamondbacks slugger Justin Upton (10) celebrates his two-run, go-ahead home run with teammates (from left) Gerardo Parra and Miguel Montero as Ramon Hernandez of the Rockies looks on in the ninth inning at Coors Field in Denver.

Notable: Kennedy is expected to join the team in Arlington after taking the past two days off to be with his wife, who was expecting the couple's second child. He is 2-0 with a 0.66 ERA in his past two starts following a personal five-game losing streak. In his last two starts, he has held opponents to a .200 batting average with three walks and 19 strikeouts. He is coming off a career high-tying 12 strikeouts in his last start, a 10-0 win over Colorado in which he pitched six scoreless innings. ... Lewis is 1-5 with a 4.37 ERA since the beginning of May. He pitched a complete game in his last start, a 2-0 loss to the A's. He is 6-2 with a 2.14 ERA in nine interleague starts. On May10 in a 6-5 loss to the Orioles, he allowed five home runs. In his past four starts, he has walked just four batters. This will be his first start against the Diamondbacks, but he has faced a handful of Arizona players. Jason Kubel is 1 for 10 against him and Aaron Hill is 0 for 9.