It was his second opportunity to put the Braves ahead after he grounded into a double play with two on and one out in the seventh inning.
"You can't give him too many opportunities with the game on the line," Jones said. "He's going to get you eventually."
McCann was 0 for 3 before his big hit.
"Every at-bat I came up tonight I had a chance to do something and didn't and it was very satisfying getting it in extra innings and being able to give us the lead," he said.
He said he didn't even realize he was approaching 500 RBIs.
"It's a cool milestone, but I want to get a lot more so it's just the first step I guess," he said.
The Astros have lost seven of eight.
Lyon (3-3) struggled to throw strikes in his second appearance since coming off the disabled list this week. He also gave up a homer in Friday's loss to the Braves.
Lyon said the problem wasn't physical and that he felt "great."
"I didn't make enough pitches," he said. "Just fell behind a lot. I couldn't find the strike zone and when I did find the strike zone, they hit the ball. Obviously, I will just come out tomorrow, work through it and try to get better."
Jones hit his second double after McCann's homer to chase Lyon and scored on a two-out single by Eric Hinske to make it 6-2.
The Braves moved to a season-high nine games over .500 with the win in their 14th extra-inning game of the season.
"I think this team has probably taken about 10 years off my life already, but we're doing pretty well in late innings and close situations," Jones said. "They build character and the more and more we do it, the more confidence we have."
Hinske homered for the second straight game to tie it in the fourth inning and Jones drove in a run in the third.
Houston's Hunter Pence had two hits including an RBI double in the first inning to extend his hitting streak to a career-best 22 games, which is the longest current streak in the majors.
Atlanta closer Craig Kimbrel allowed two hits and a run in the 10th inning.
Houston rookie Jordan Lyles, who at 20 years old is the youngest player in the majors, allowed eight hits and two runs in 6 1/3 innings in his third start overall and first at Minute Maid Park.
"Jordan did a really good job of working out of some jams in the first couple of innings," Houston manager Brad Mills said. "That was huge to see. That really goes back to his demeanor and him not getting too out of control. He was able to stop the damage tonight."
Braves starter Mike Minor yielded four hits and two runs with four strikeouts in six innings.
Matt Young singled with one out in the ninth inning but was thrown out trying to steal second base. He was initially called safe but slid away from the base and was tagged out by Clint Barmes before pinch-hitter Brooks Conrad struck out.
Diory Hernandez reached on an error by Jeff Keppinger when he couldn't handle his grounder with none out in the seventh. Uggla singled after a sacrifice by Schafer to send Hernandez to third base and chase Lyles.
McCann grounded into a double play off Sergio Escalona to allow Houston to once again escape trouble.
Bourn tripled to the left field corner with one out in the first inning to extend his hitting streak to 12 games before Pence and Carlos Lee hit consecutive RBI doubles to nearly the same spot to put Houston up 2-0.
Jones got Atlanta to 2-1 with his two-out RBI double in the third inning. Hinske's homer to right field tied it at 2-all in the fourth inning.
The 39-year-old Jones wowed the crowd with two diving catches that robbed the Astros of hits in the fifth and sixth innings.
Atlanta RHP Jonny Venters pitched a scoreless eighth to extend his streak of scoreless innings to 21 which is the longest current streak in the majors. ... Atlanta manager Fredi Gonzalez spoke to Martin Prado, who is on the disabled list with a staph infection, on Saturday. He said Prado is receiving intravenous antibiotics daily in Atlanta and that he is feeling much better. ... Gonzalez said that CF Jason Heyward (right shoulder) felt good after his second day of swinging off a tee and doing baseball activities and that he could go out for a rehabilitation assignment as soon as the middle of next week. ... Braves RHP Brandon Beachy, on the DL since May 14 with a strained muscle on his left side, threw 51 pitches in a simulated game on Saturday.