Right fielder Nate Schierholtz didn't even move when Gonzalez drilled Villanueva's 3-2 slider over the wall behind him in the third. It was the second homer of the spring for the two-time All-Star, who was slowed by injuries last season.
"He's good to go," Rockies manager Walt Weiss said, smiling.
Competing for the final rotation spot, Morales walked three in the first two innings. But he settled down and allowed one unearned run and one hit while striking out three.
In his first start of the spring, Villanueva struck out Michael Cuddyer and Justin Morneau twice each in four innings. The right-hander gave up three runs and three hits.
"This team has given me nightmares and they had their full squad out there," Villanueva said. "The strikeouts are nice, but the fact that I was getting swings and misses and getting quick outs, I'll take that."
Charlie Blackmon, competing for Colorado's open center field job, hit a three-run homer off Paola Espino in the bottom of the ninth to win it.
"I don't know if I've ever hit a walk-off home run, ever, anywhere," Blackmon said. "Every at-bat counts.
Cubs: Another year, same questions about where Villanueva will end up: starter or bullpen?
"This is my ninth season, and I think at least six, every team I've been (on), I've had the same (questions)," Villanueva said. "I'm used to it by now. It doesn't upset me. It's a competition. It's fun and it's exciting."
Rockies: Morales had an opposite-field double off Villanueva in the second and ran gingerly into second base with what he said was tightness in his groin.
He stayed in the game, but Morales' left thigh was wrapped in ice after his 69-pitch outing.
"I don't think it's going to hold him back," Weiss said.
Rockies executive Bill Geivett wrote in a Twitter chat that right-hander Jhoulys Chacin's expected return is early May. Chacin, the team's top right-handed starter a year ago, initially said the worst-case scenario was that he'd miss "two or three starts" to begin the season.
Chacin said he hasn't been told a target date.
"I really don't know," he said. "I feel fine. I've been throwing long toss."
Chacin was shut down Feb. 23 because of shoulder pain. He said he's felt no discomfort in recent sessions throwing at 220 feet. He said he could throw a bullpen session within the week.
Cubs: Prospect Mike Olt (shoulder) is expected to make his spring debut at third base Thursday. He's hit four home runs while playing at first and designated hitter this spring. ... Shortstop Starlin Castro (hamstring) hopes to do some running Thursday.
Rockies: Left-hander Boone Logan (elbow) said he's scheduled to pitch in his first game Thursday after having no problems in two simulated games this week. "I stopped thinking about mechanics and anticipation for my arm to hurt, which it never did," Logan said. "I think it's time to start facing other hitters."
Cuddyer, who hit an NL-best .331 last season, went 0 for 3 with two strikeouts and a weak groundout. He is 4 for 29 (.138) this spring.
"I don't worry about Cuddy," Weiss said. "Cuddy is one of those guys you never have to worry about."
The Cubs hit two home runs, giving them a major league-best 25 this spring—two more than Boston.
Javier Baez hit a long solo homer to center in the eighth inning off Rob Scahill. Luis Valbuena then hit a solo shot to right off Greg Burke in the ninth.