B.J. Upton's two-run triple helped rally the Braves from a four-run deficit in the ninth.

In a game packed with momentum shifts, Upton could only remember his error from the inning before.

The Braves rallied in the ninth and 10th innings before the Los Angeles Angels scored five runs in the 13th to beat Atlanta 11-6 Saturday night.

Kole Calhoun's bases-loaded single in the 13th inning drove in the go-ahead run. Mike Trout and Albert Pujols each added two-run hits to cap their respective big nights and put the game away.

Upton's two-base fielding error on Erick Aybar's single in the eighth set up an unearned run off Jordan Walden. Without that run, the Braves' four-run ninth could have ended the game.

"If I don't make that error maybe we win the game. It's on me," Upton said.

Evan Gattis homered for Atlanta.

The Braves trailed 5-1 before scoring four runs in the ninth on five straight hits off Ernesto Frieri, costing Garrett Richards a win after he set a career high with 10 strikeouts in six scoreless innings. Freddie Freeman's double drove in the tying run.

The Braves also recovered from a 6-5 deficit in the 10th.

"It's about fighting," Upton said. "It's not over until we make the last out. We fought hard and we just came up a little short."

Trout and Pujols each had three hits, including back-to-back homers in the sixth inning, and drove in four runs.

"We never quit and they never quit," Trout said. "Give them props. They scored four runs against us in the ninth. But we kept battling and put ourselves in position to win the game."

Aybar led off the 13th with his fourth hit, an infield single, and moved to second on catcher Gerald Laird's passed ball. David Hale (2-1) walked pinch-hitter C.J. Wilson and hit Chris Iannetta with a pitch to load the bases.

Calhoun's soft fly ball fell just in front of Upton, who attempted a sliding catch, to give Los Angeles the lead. Trout's two-run double and Pujols' two-run single pushed the lead to five runs.

"I just can't walk people like that," Hale said. "That was the big problem."

The teams combined to use 16 pitchers in a game that lasted nearly 5 hours.

Fernando Salas (4-0) pitched two scoreless innings.

Angels manager Mike Scioscia missed the game to attend the funeral of former Dodgers teammate Bob Welch in Arizona. Bench coach Dino Ebel was the acting manager.

Josh Hamilton drove in Pujols with a single off Craig Kimbrel in the 10th inning to give the Angels a 6-5 lead. The Braves pulled even on Jason Heyward's run-scoring, broken-bat single off Cam Bedrosian.

Angels rookie Cam Bedrosian faced immediate drama in the 10th. Tommy La Stella led off with a single and moved to second when Bedrosian dropped the ball on the mound for a balk. With his father, former Braves pitcher Steve Bedrosian, watching from a luxury suite, the young Bedrosian recorded one out before giving up an infield hit to pinch-hitter Ramiro Pena and Heyward's tying single to right field.

An intentional walk to Freeman loaded the bases before right fielder Calhoun charged toward the infield to make a diving catch on Justin Upton's fly ball, ending the inning.

"Beautiful," Ebel said of the catch.

"Awesome," Trout added. "It saved the game for sure."

Richards allowed only four hits with three walks. He has allowed a combined 12 hits and one run in three dominant June starts.

Pujols drove in the Angels' first run off Gavin Floyd with a sacrifice fly in the fourth.

Floyd allowed four runs on seven hits in 6 1-3 innings.

NOTES: LHP Alex Wood gave up two hits in 3 2-3 scoreless innings for Triple-A Gwinnett on Friday night. It was Wood's first appearance since he was sent down to be stretched out as a starter. ... Gattis extended his career-best hitting streak to 14 games. ... Braves LHP Mike Minor will face Angels LHP Hector Santiago when the three-game series ends on Sunday night. Santiago is 0-6.