Jhonny Peralta connected for his third home run of the spring, a solo shot in the second. An inning later, Matt Holliday blasted his first Grapefruit League home run, and Matt Adams capped a four-run inning with his fourth. In between the homers, Yadier Molina hustled out an RBI triple.
In total, the Cardinals peppered Williams for six earned runs on nine hits. The Astros right-hander looked his best at the end, as he closed out his outing by retiring the side in the fourth. Williams entered the day having given up two earned runs and no home runs in 8 1/3 spring innings.
Holliday, Allen Craig, Molina and Peralta all finished the afternoon with multi-hit games.
The offensive support was plenty sufficient for Joe Kelly, who carried a no-hitter into the sixth of what was his final Grapefruit League start. It wasn't the cleanest of appearances for Kelly, who walked three prior to allowing his first hit.
"I wouldn't say it was great at all, by any means," Kelly said. "There were some [calls] that could have gone either way, but the walks are something I absolutely don't like. I'd rather a guy get on with a hit than walk him. I just wasn't too thrilled about walking those guys."
Houston's Jonathan Villar opened the sixth with a triple and scored on a single by Robbie Grossman. After issuing his fourth walk of the day, Kelly was replaced by Jorge Rondon. Rondon allowed one of the two inherited runners to score.
Kelly, who gave up 10 runs on 15 hits in 13 1/3 Grapefruit League innings, will now have to wait to see if he is awarded the fifth spot in the Cardinals' rotation.
Right-hander Anthony Bass pitched 1 2/3 scoreless innings in relief of Williams. Lefty Raul Valdes also made a scoreless appearance out of the 'pen for the Astros.
Up next: Left-hander Dallas Keuchel gets another shot to win a spot in the rotation when the Astros face the Braves at 5:05 p.m. CT in Lake Buena Vista, Fla. Keuchel got off to a nice start this spring with three consecutive scoreless outings before getting rocked for 13 hits and seven runs March 18 against the Marlins in Jupiter. He's battling with Williams, Brad Peacock and Lucas Harrell, though either one of those pitchers could wind up in the bullpen as well. The game will be available on MLB.TV
Jenifer Langosch is a reporter for MLB.com. Read her blog, By Gosh, It's Langosch, and follow her on Twitter @LangoschMLB. This story was not subject to the approval of Major League Baseball or its clubs.