The Bobcats ended a five-game losing streak and won for just the 10th time this season. The Washington Wizards are the only team left in the NBA that has yet to reach 10 victories.
Orlando has lost 12 of its last 14 contests.
Charlotte led by 13 points near the midway point of the final period, but Orlando cut it to four on a pair of free throws by Jameer Nelson with 1:13 to go.
The Magic got the ball back, but Arron Afflalo missed a layup and was then assessed for a technical for protesting the lack of a foul call on his shot.
Walker made the technical free throw and moments later grabbed an offensive rebound off a miss by Hakim Warrick. That led to two more foul shots that gave the Bobcats a 101-94 lead with 28 seconds remaining.
Gerald Henderson added 17 points for Charlotte and Warrick had 15. Afflalo produced 23 points for the Magic and Nelson contributed 22.