A lot of demons were exorcised Saturday by the folks wearing the visiting uniforms at Busch Stadium.

Yovani Gallardo showed he can still be a dominating pitcher.

Carlos Gomez proved he actually can put together good at-bats.

And, most important, the Milwaukee Brewers proved they could score a few runs and actually win a ball game.

All of those factors converged to allow the Brewers to snap a frustrating seven-game losing streak with a hard-fought 4-0 victory over the first-place St. Louis Cardinals, an outcome that took some pressure off a club that seemingly had forgotten how to hit.

The day after St. Louis left-hander Jaime Garcia took a perfect game into the eighth inning, Gallardo entered that frame with a no-hitter. It would be spoiled by an unlikely candidate, Daniel Descalso, who led off with a single up the middle, the only hit a potent Cardinals lineup could muster.

Gallardo overcame three horrible trends in pitching eight innings of one-hit ball. He had staggered to a 1-2 record and 8.89 earned run average over his previous five outings. He never had beaten the Cardinals, going 0-4 with a 5.63 ERA in seven starts. And he had been a career underachiever in day games, going 9-14 with a 4.24 ERA.

"That's pretty dramatic," manager Ron Roenicke said of Gallardo's turnaround. "That's the guy I saw in spring training, and the guy we saw in the first two games. He had really good stuff and really good command."

Gallardo had been working on changing his tempo on the mound and Roenicke noted that pitching coach Rick Kranitz was "really excited" after the pitcher's last bullpen session. But, as it turned out, the big change might have been wearing different pants.

To change his luck, Gallardo decided to hitch his pants at the knees. But the 6-foot-2 right-hander's game pants were too long to make that work, so he borrowed a shorter pair from 6-foot teammate Marco Estrada.

Just call it the Brotherhood of the Traveling Pants.

"Marco's not getting his pants back," warned Gallardo.

"He was looking for shorter pants," explained Estrada. "I said, 'You can have mine.' If he's going to pitch like that, he can have mine every fifth day."

Gallardo retired the first 13 hitters before walking Lance Berkman on a 3-2 pitch in the fifth inning. Descalso drew a two-out walk that inning, but the Brewers' 1-0 lead was protected when substitute rightfielder Mark Kotsay raced back to snare Tyler Greene's opposite-field drive into the corner.