Els hangs on to win at Bay Hill