Cain, who had missed three games with an oblique strain, hit a solo homer leading off the eighth. Joc Pederson tied it with his first home run — and first hit — for the Cubs, a drive in the bottom half off reliever Devin Williams.
After automatic runner Daniel Robertson moved to third on a single by pinch-hitter Daniel Vogelbach in the 10th, Cain drove a 1-1 pitch from Brandon Workman (0-1) to the center-field batter’s eye on a warm afternoon at Wrigley Field.
“You're always happy to pull out a win, especially the way Woody pitched,” said Cain, who had his sixth career multihomer game and first since June 2017. “I'm still not where I want to be as far as my timing. I'm still trying to get back to my old form, but today was a good day.”
Cain, a two-time All-Star who turns 35 next week, played five games last season before opting out Aug. 1 because of coronavirus concerns.
Jason Heyward singled in automatic runner Kris Bryant in the Cubs 10th off J.P Feyereisen. After two walks loaded the bases, Brad Boxberger came on to retire Happ on a fly to short left for the final out and his first save.
Woodruff permitted just one hit, struck out eight and walked none in seven innings.
“He was just locked in with everything,” manager Craig Counsell said.
Woodruff was consistently ahead on counts and threw just 74 pitches. Still, he said he was starting to run out of steam when Counsell replaced him with Williams to start the eighth.
“I think that was the right move,” Woodruff said. "I was starting to lose myself in the delivery a little there.
“In the future, if I can get through seven (innings) on 74 pitches, they'll have to pretty much rip me off the mound," he said.
Josh Hader (2-0) pitched a scoreless ninth for the win.
Christian Yelich had three hits, including a double, and walked for Milwaukee.
The Cubs finished with only three hits after getting just one in a 4-0 loss to the Brewers on Tuesday night.
Pederson was happy to get one of the them and have it be big. He's now 1 for 17 after signing a one-year deal with Chicago.
“It was a big relief just to get on the board, and at a time to tie the game up and give ourselves a chance to win," Pederson said.
Cubs starter Kyle Hendricks nearly matched Woodruff through six scoreless innings. The Cubs ace allowed four hits, while walking none and fanning six.
Hendricks rebounded from a shaky opening-day start when he allowed three runs in three innings.
'It felt a lot better to be honest with you, kind of from the start, from the first pitch," he said. “Definitely on the right track.”
NOT QUITE NO-NOS
The Brewers became the first team with two no-hit bids of six-plus innings in the first six games of a season since the 1990 Padres. RHP Corbin Burnes didn’t allow a hit through the first six innings against Minnesota on Saturday, a game the Twins won 2-0 .
Brewers: 2B Kolten Wong was held out of the starting lineup with an oblique strain, but entered in the eighth as a defensive replacement. Robertson started at second in Wong’s place, then moved to third in the eighth.
Cubs: C Willson Contreras got a scheduled maintenance day off and Tony Wolters started behind the plate. Contreras pinch-hit and walked in the 10th. Contreras was hit by a pitch in the helmet on Monday and in the upper body in the ninth inning on Tuesday, but manager David Ross said the plunkings had nothing to do with resting the catcher.
Brewers: RHP Corbin Burnes (0-1, 1.42) takes the mound against St. Louis RHP Adam Wainwright (0-1, 20.25) in the Cardinals' home opener on Thursday afternoon.
Glasnow K's 14 in dominant start vs. Rangers
Rays ace Tyler Glasnow strikes out a career-high 14 Rangers in a dominant outing.
Hinch trying to focus on the good things that happened in Houston
Former Astros manager A.J. Hinch reflects on his time managing Houston and how weird it is being on the other side of the field.
Mariners and Orioles rained out, twin-bill set for Tuesday
— The series opener between the Seattle Mariners and the Baltimore Orioles was rained out Monday night.
Los Angeles Angels lose third baseman Anthony Rendon (groin) to 10-day injured list
Los Angeles Angels third baseman Anthony Rendon, who was hurt while making a throw late in a 15-1 loss to the Toronto Blue Jays on Saturday, was placed on the 10-day injured list.
Zac Gallen to start Tuesday for Arizona Diamondbacks; Josh Reddick signed to minor league deal
Right-hander Zac Gallen is set to start for the Diamondbacks on Tuesday against the A's after missing the season's first few weeks with a hairline fracture in his right forearm.
'From Forgotten to Forever: Jackie Robinson's historic handshake'
A photo of Robinson shaking hands with minor league teammate George Shuba is being immortalized in bronze