Xavier fell a half game behind Dayton in the battle for the Atlantic 10 Conference lead.
Ian Anderson made five 3-pointers and led Charlotte with 16 points. Mack scored 12, all of them coming in the final 8 minutes.
Mack's 3-point shot gave Charlotte a 62-58 advantage. After Derrick Brown brought the Musketeers within two with 14 seconds to play, An'Juan Wilderness hit two foul shots to restore Charlotte's four-point lead.
Wilderness added another free throw with 2 seconds to play. The 49ers (10-15, 4-7 A-10) have won two in a row.
It was Charlotte's first win over Xavier in seven tries.
Xavier (21-5, 9-3) was paced by 13 points from C.J. Anderson. After winning their first eight conference games, the Musketeers have dropped three out of four.
Xavier was a 69-47 winner when these teams played in Cincinnati last month.