ST. LOUIS — Jack Flaherty survived a career-high seven walks and a hit batter in throwing five no-hit innings, and the St. Louis Cardinals scored three unearned runs in the third on their way to a 4-1 victory over the Toronto Blue Jays on Saturday for their first win this season.

“Seven walks is not pitching,” Flaherty said. “That’s not something that’s going to work over the long run. I was able to get away with it today.”

Bothered by shoulder issues that sidelined him most of last season, Flaherty (1-0) had only one clean inning but it was his final one. Facing the Blue Jays for the first time in his career, he fanned four and benefited from a second-inning double play started by third baseman Nolan Arenado on George Springer.

“I probably shouldn’t have been rewarded today the way I was throwing,” Flaherty said.

On a windy 46-degree day, Flaherty threw 49 of 95 pitches for strikes. He became the first pitcher to walk at least seven batters while pitching five or more hitless innings since Pirates righty Mitch Keller in 2020, according to ESPN’s Stats & Information research.

“I’m actually proud of him,” Cardinals manager Oliver Marmol said. “I think we took a big step in the right direction today as far as keeping his cool and figuring out how to make an adjustment rather than allowing it to snowball. That game could have got real ugly in a heartbeat and he didn’t allow it to.”

“It’s weird like you’re sitting around waiting, sitting around waiting and you kind of need someone to get the hit,” Toronto manager John Schneider said. “We just didn’t get it today. But I thought the approach was good.”

Facing Andre Pallante, the third of five St. Louis pitchers, Kevin Kiermaier lined a single past the dive of second baseman Brendan Donovan with one out in the seventh. Kiermaier also beat out an infield single in the ninth, and Bo Bichette looped a single off Ryan Helsley in the ninth.

A two-out throwing error by third baseman Matt Chapman led to the three unearned Cardinals runs in the third. Paul Goldschmidt, who is 6-for-9 against Kevin Gausman (0-1), gave the Cardinals runners at first and third on a bloop single with two outs. Then, Chapman bobbled Arenado’s grounder and threw wide of first base, allowing the first run to score.

Nolan Gorman‘s two-run single past the diving attempt of Chapman made it 3-0. Rookie Jordan Walker‘s infield hit drove in the Cardinals’ final run in the eighth.

Gausman, 1-5 against the Cardinals, scattered eight singles over six innings while allowing no earned runs.

The Blue Jays drew 10 walks, including three in the eighth off Jordan Hicks, who topped 100 mph with 13 of 20 pitches. Toronto scored on a wild pitch in the eighth and stranded 12 runners while going 0-for-11 with runners in scoring position. Helsley, a 2022 National League All-Star who took the loss on Opening Day, had a five-out save.

The Associated Press contributed to this story.