ATLANTA -- Two big swings and one last 98-mph fastball left the Atlanta Braves with a giant sigh of relief.

Dan Uggla hit a three-run homer and Michael Bourn also went deep Tuesday night, leading the Braves to a 5-4 win over the St. Louis Cardinals, snapping an eight-game losing streak -- Atlanta's longest in more than two years.

"This is not an indication of what's going to happen the next day or the next week or the next month," Uggla said. "But it definitely snaps the feeling of, 'Aww, man, are we ever going to win again?'"

Bourn led off the bottom of the first with his fifth homer of the season, tying a career high. Uggla made it 4-0 in the third, sending one into the seats in left-center. The Cardinals closed within a run in the seventh, but Eric O'Flaherty and Craig Kimbrel each worked one perfect with two strikeouts to preserve the win.

Kimbrel earned his 14th save in 15 chances, ending the game by fanning Matt Holliday on a fastball that clocked 98 mph. The right-hander pumped his fist and slapped hands with his teammates, everyone looking as though a weight had been lifted.

"Everyone knows how bad we've been scuffling," Uggla said. "When you get that first one, it eases the tension, eases the pressure. We know what it feels like to win again. It was obviously a big night for us."

Randall Delgado (3-5) worked into the sixth, allowing three runs, and the Cardinals got closer in the seventh on Yadier Molina's third RBI of the night, a run-scoring single. He went 4-for-4, including a solo homer.

Moline liked the previous day better, when he had just one hit but the Cardinals won.

"I feel good," said Molina, who is hitting .560 (14 for 25) with three homers and 11 RBIs during a six-game hitting streak. "At the same time, I'd trade my 1 for 5 from last night and the win and not take the 4-for-4 and the loss."

Jake Westbrook (4-4) struggled to keep his sinker down and lasted only five innings.

"That's a couple of games in a row I've put us in a hole," he said. "I've got to do a better job. With the sinker that I have, that should keep the ball in the yard."

The Braves shook things up before the game, sending reliever Kris Medlen to the minors so he could stretch out his arm and return to the big leagues as a starter. He was replaced on the roster by speedy outfielder Jose Constanza, who started in left and batted ninth -- ahead of Delgado -- as manager Fredi Gonzalez looked for ways to shake the team out of its worst slump since a nine-game winless stretch in April 2010.

"Why not?" Gonzalez said.

The unusual lineup paid off in the fifth, when Constanza led off with a single, moved to second on Westbrook's errant throw to first, raced to third on Bourn's deep flyout and sped home on Westbrook's wild pitch. That gave the Braves a 5-2 lead, which turned out to be just enough to hold off the Cardinals.

"He brings the team a little energy," Gonzalez said of Constanza, who also sparked the Braves last season after being called up.

Molina had his third four-hit game of the season. He began the comeback with a run-scoring single in the fourth, when St. Louis scored twice to halve Atlanta's lead to 4-2. Molina followed in the sixth with his eighth homer, a one-out shot into the left-field seats. Then, in the seventh, he came through again with an RBI single to right off Jonny Venters, making it a one-run game.

But Venters, whose struggles have apparently cost him his role as the eighth-inning setup man to Kimbrel, escaped the jam by striking out Matt Adams with runners at first and third.

"Jonny made some strides," Gonzalez said. "He got them hitting ground balls. Now we've got to work on getting them to hit ground balls at somebody."

Westbrook gave up only five hits, but the long ball sent him to his fourth straight start without a win. Bourn drove a 2-2 pitch into the seats to start the Atlanta first, tying the career high for homers that he set with Houston in 2008. There's plenty of time to take down that mark, with four months left in the season.

"I'm not trying to hit home runs," Bourn said. "They just come when they come."

Bourn took the more customary leadoff role in the third, working Westbrook for a one-out walk. Martin Prado singled on a hit-and-run and Brian McCann grounded out before Uggla came through with his eighth homer.

Game notes

The Cardinals outhit the Braves 10-5. ... Gonzalez didn't say who Medlen will replace in the rotation once he returns from Triple-A Gwinnett, but left-hander Mike Minor (2-4, 6.98 ERA) is the most likely candidate to get bumped. ... Atlanta also snapped a streak of four straight games giving up at least seven runs. ... Skip Schumaker's single in the fifth extended his hitting streak to seven games.