Carlos Alcaraz battled back from a set down to beat Taylor Fritz in a near three-hour epic at the ATP Finals.