Mike Leake's first full season with the St. Louis Cardinals got off to a rough start after he signed a long-term deal in the offseason. Recently, he's pitched like they'd hoped when they made the investment.

Leake seeks a third consecutive solid start when he faces the visiting Arizona Diamondbacks on Saturday.

St. Louis (22-20) gave Leake a five-year, $80 million deal to insert another reliable arm into its rotation, but he disappointed at the start. Leake (2-3, 4.66 ERA) had a 6.03 ERA through his first six starts, allowing at least four runs in each.

More from FoxSports

The right-hander has been fantastic over his last two, though, giving up one run in eight innings to beat the Los Angeles Angels on May 10 before allowing a run in six innings of Sunday's 5-2 win over the Dodgers.

"Mike pitched a tremendous game and I'm just happy to come and be a part of that game," catcher Yadier Molina said.

Leake wasn't nearly as good in two starts against the Diamondbacks last season, losing both while giving up nine runs and 19 hits in 8 2/3 innings. Rickie Weeks is 6 for 15 with two homers, a triple and two doubles off Leake, who opposes Robbie Ray in this one.

Ray (2-2, 4.46) went fewer than five innings in three of his previous four starts before allowing two runs in seven innings of Monday's 12-2 win over the New York Yankees. He threw 111 pitches after tossing 112 in 4 2/3 innings in his previous outing.

"That's as good as I've ever seen him," manager Chip Hale said of Ray, who also had his first career RBI. "In the strike zone, going after guys. He was using his breaking ball, his changeup, but he was really beating them with his fastball. I could hear him grunting out there."

Nothing was working for the left-hander against the Cardinals on Aug. 25. Ray gave up six runs and walked five in just three innings, losing 9-1 in his only career start against them.

The Cardinals had won three of four prior to Friday's 11-7 loss in the series opener. They were coming off a 13-run effort in Thursday's win over Colorado but couldn't get much going against Arizona (20-24) starter Patrick Corbin, who pitched 6 1/3 solid innings.

Matt Holliday went hitless to snap his six-game hitting streak against the Diamondbacks and is 2 for 24 over his last six.

Six Diamondbacks had two hits Friday including Chris Herrmann, who homered and drove in three runs. He's hitting .400 over his last 11 and has a five-game hitting streak.

Arizona had lost seven in a row in St. Louis prior to the series opener. It is 13-7 on the road and 7-17 at home.

"I wouldn't say we're so good on the road, I'd say we've been poor at home," manager Chip Hale. "I think it is really the way we should be playing, and we'll have to do that at home also."