Mickelson wins Open with late charge