Confiando en el elemento sorpresa, Piccinino ordenó un ataque para la tarde del 29 de junio, pero el polvo levantado por el camino entre Sansepolcro y Anghiari alertó a Attendolo, que se preparó para la batalla.
Los caballeros venecianos bloquearon la avanzada milanesa sobre el único puente a través del canal que protegía el campamento de la coalición.
Attendolo y los venecianos guardaron el puente, permitiendo a la mayor parte del ejército de la coalición prepararse para el encuentro, pero fueron obligados a retroceder por los refuerzos de los milaneses.
Estos avanzaron pero su flanco derecho fue tomado por las tropas papales y obligado a retroceder sobre el puente.
La batalla siguió durante la noche y terminó con la victoria de la coalición.