Al Jefferson scored 20 points and former Spurs guard Gary Neal added 15 for Charlotte. Gerald Henderson had 12 and Kemba Walker 11.
There were three ties and two lead changes in the final 7 minutes as San Antonio celebrated Military Appreciation Night with camouflage uniforms.
Ginobili blocked Walker's layup and drew a charge on Jefferson on consecutive possessions. Duncan followed with a 15-foot jumper that gave the Spurs an 82-80 lead with 1:43 remaining.
Ginobili later completed a three-point play after rolling in a left-handed layup from the right side of the rim just beyond the reach of Jefferson and Henderson to put San Antonio up 88-80.
Charlotte led throughout the first half, extending its lead to 34-20 with 8:26 remaining on three free throws by Anthony Tolliver. Showing the type of ball movement the Spurs are normally known for, the Bobcats had 15 assists on their 19 first-half baskets.
San Antonio had only three assists early in the game, missing all but five of its first 17 shots while shooting 30 percent.
Charlotte built the advantage with little help from Walker, its second-leading scorer. He only had three points, going 1 for 8 from the field in the first half.
San Antonio closed the first half on a 7-0 run to pull to 45-41, the closest it had been since midway through the first quarter.
Ginobili's 3-pointer gave the Spurs their first lead at 51-49 with 5:21 left in the third. His second 3 gave San Antonio a 64-57 advantage and brought a loud cheer from the sold-out crowd, which began buzzing in anticipation before he even released the ball.
NOTES: With his 12th rebound, Duncan passed Hakeem Olajuwon (13,748) for 12th on the NBA's career list. At 13,753 rebounds, Duncan is 16 shy of tying Wes Unseld for 11th. . Neal and Duncan shook hands and hugged following a timeout with 4 minutes remaining after Duncan glared at his former teammate before giving a sly smile. . Spurs point guard Tony Parker sat behind the team's bench as he continues to recover from a series of leg maladies that began before the All-Star break. . Charlotte C Brenden Haywood (broken left foot) and F Jeff Taylor (ruptured right Achilles) both missed the game. . Duncan has 791 career double-doubles, ranking him sixth all-time and 23 double-doubles behind Hall of Famer Karl Malone for fifth. Duncan, Olajuwon, Kareem Abdul-Jabbar, Shaquille O'Neal and Kevin Garnett are the only players in NBA history to rank in the top 20 all-time in scoring, rebounding and blocked shots. . San Antonio coach Gregg Popovich said point guard Nando De Colo was traded by request. De Colo, sent to Toronto for F Austin Daye, was the Spurs' fourth point guard behind Parker, Cory Joseph and Mills. "Earlier in the year, Nando requested to be traded, to be in another situation so he could get more playing time," Popovich said. "I don't know if he will or not, but R.C. (Buford) has been trying for a while to find a spot for him and try to take care of his request."