Charlotte took a 124-122 lead on two free throws by Sean May with 39.3 seconds left in the second overtime, but Milwaukee guard Charlie Bell hit a jump shot to tie the game with 34.7 seconds remaining.
A Milwaukee defender kicked the ball out of bounds with 5.1 seconds remaining, and Charlotte inbounded the ball and found Harrington standing alone on the right baseline.
The Bobcats appeared to have the game won at the end of the first overtime, but Milwaukee forward Ersan Ilyasova hit a 3-pointer at the buzzer to tie the game at 105.
Ilyasova's shot came after May hit a 3-pointer with 13.7 seconds left in the first overtime to give the Bobcats a 1-point lead, then hit two free throws to extend the lead.
Gerald Wallace led Charlotte with 29 points, and Brevin Knight added 17 points and 14 assists. The Bobcats are 2-5 in preseason play.
Mo Williams led Milwaukee with 26 points -- including a long jump shot with 6.6 seconds remaining to tie the game in regulation. Knight missed on the other end, and the game went to overtime.
Charlie Villanueva had 25 points and 12 rebounds for Milwaukee. It was the strongest performance in what had been a quiet preseason for the second-year forward, who was acquired in an offseason trade with the Toronto Raptors for point guard T.J. Ford.
Villanueva scored 17 points in the first half, and showed he can fit into the Bucks' new up-tempo offense with an alley-oop slam dunk off a pass from Williams.
Charlie Bell added 24 for the Bucks, whose preseason record fell to 3-4.
Forward Ruben Patterson did not play for Milwaukee because of a lacerated right elbow. The Bucks already were without center Andrew Bogut and forward Bobby Simmons, both of whom are expected to miss the beginning of the season because of injuries.
Bucks coach Terry Stotts said before the game that Bogut is ahead of schedule on the rehabilitation of a lower left leg sprain that originally was expected to sideline him for six to eight weeks.