El australiano de 29 años se impuso 3-6, 7-6 (4), 6-4 en su primera final de la temporada y en su primera presentación en el único torneo de césped en Alemania.
Federer, que buscaba su sexto título en Halle, había ganado sus anteriores 29 partidos en este certamen.
Tras pasar las primeras cuatro rondas sin perder un set, Federer encontró un rival digno en la final, que se convirtió en una batalla entre dos ex números uno del mundo.
El suizo, a quien el español Rafael Nadal desplazó del primer puesto tras el Abierto de Francia, comenzó con solidez y parecía camino a despachar su sexta final en Halle al ganar el primer set por 6-3.
Sin embargo, el australiano le quebró el servicio temprano en el segundo set y mostró que estaba listo para pelear por el título.
Federer le devolvió el quiebre y el set se fue al tie break, que Hewitt ganó en su cuarto set point. Así, se convirtió en el primer jugador que le ganó un set al suizo en Halle desde el 2006.
El último set fue todo de Hewitt, que volvió a quebrar a Federer en su primer juego y ya no desperdició esa ventaja. Ganó el partido con un golpe de suerte, cuando la pelota tocó el borde de la red antes de caer en territorio válido.
"Es fantástico", dijo Hewitt. "Roger es un tremendo rival y todos saben lo bueno que es en las canchas de césped. Su historial habla por sí mismo y yo sólo tuve suerte".