ST. LOUIS (AP) Matt Garza struggled with control woes, issuing five walks. Shortstop Jean Segura had trouble getting his throws to first and Ryan Braun couldn't quite pull off a shoestring catch.
Warts and all, the Milwaukee Brewers did just enough to spoil the St. Louis Cardinals' home opener.
''It was kind of an ugly win,'' manager Ron Roenicke said after a 5-4 victory on Monday. ''Right now, it's a win.''
Carlos Gomez had two hits and an RBI for the Brewers, coming off a 1-5 opening home stand but far from desperate.
''It's only seven games,'' Gomez said. ''You see the Red Sox in 2013, they lost 11 games straight and they won the World Series.''
Adam Wainwright (1-1) started his fourth opener at 10-year-old Busch Stadium and gave up five runs - three earned - in seven innings. Jhonny Peralta had two hits, including a two-run double off Jeremy Jeffress that cut the deficit to a run in the seventh.
''I would say that I was kind of a mixed bag,'' Wainwright said. ''I wouldn't say those were a lot of bad pitches, they were just predictable pitches in counts when they were guessing inside or outside.''
Francisco Rodriguez earned his first save, helping himself with the defensive play of the game when he reached behind his head and snared Peralta's liner leading off the ninth. Cardinals manager Mike Matheny said he was ''looking in the outfield'' for a line-drive hit.
''I just threw my glove up there and I find one, that's all,'' Rodriguez said. ''To tell you I see the ball coming off the bat, I didn't. I don't know if it was going to hit my face or not but I think it was real close.''
Play was sloppy with Segura and Cardinals second baseman Kolten Wong committing two errors apiece.
Jeffress' wild pitch put both runners in scoring position ahead of Peralta's double, which scooted past Braun's attempt at a running catch.
Segura doubled off the outstretched glove of new Cardinals right fielder Jason Heyward, who might have taken an indirect route to the ball, to set up Scooter Gennett's run-scoring groundout for a 2-0 lead in the second.
A double by Gomez that made it 4-2 in the seventh was the first RBI hit for the either team. Gomez made it a three-run cushion when he scored from second on Jonathan Lucroy's infield hit combined with Wong's wild throw to first.
Garza allowed two runs - one earned - in 5 2-3 innings to win for the first time in six career starts in St. Louis. He entered 0-2 with a 6.95 ERA.
Wainwright beat the Cubs in the season opener and had won six consecutive regular-season decisions since losing to Pittsburgh on Aug. 27.
The highlight of the pregame ceremony was a video memorial to Oscar Taveras, the promising outfielder killed along with his girlfriend in an automobile accident last fall. St. Louis uniforms include a patch on the left sleeve with the initials of the 22-year-old Taveras.
''That was as choked-up as I've ever been on a baseball field,'' Wainwright said.
Cardinals favorites clad in red jackets rode atop convertibles during the traditional pregame procession around the warning track. Hall of Famers Bob Gibson, Lou Brock and Ozzie Smith led the parade that also included former managers Tony La Russa and Whitey Herzog.
''I've never seen that many trucks on the field,'' Gomez said.
Standing room attendance of 49,875 was the largest at Busch Stadium.
Cardinals: Backup catcher Tony Cruz was activated from the paternity leave list prior to the game and catcher Ed Easley was optioned to Triple-A Memphis.
Brewers: Wily Peralta (0-0, 2.57) allowed two earned runs in seven innings his first time out in a 10-inning loss to Colorado. He was 3-1 with a 2.18 ERA in five starts against St. Louis last year.
Cardinals: Lance Lynn (0-1, 1.50) makes his 99th career start and will be seeking his 50th win. He was 2-0 with a 1.80 in four starts against Milwaukee last year.
Garza's five walks in 5 2-3 innings were one off his career worst. Brewers pitchers totaled seven walks, fewest in the majors, their first six games.
Wong scored from first to tie it at 2 in the fourth when Segura overthrew first base going for a double play on a bunt by Wainwright.
Adam Lind has reached safely in all seven games. Matt Carpenter was 1 for 12 against Garza before doubling to start the third.