Voor ruim 70.000 gulden maakte Bals in 1965 de overstap van PSV naar Ajax waar hij Bertus Hoogerman opvolgde. In Amsterdam groeide de in Utrecht geboren doelman uit tot een betrouwbare sluitpost van Ajax. Hij maakte naam als 'meevoetballende keeper' die vaak ver voor zijn doel stond.
Aanvoerder
Vooral in de Europa Cup-wedstrijden op weg naar de finale in 1969 blonk Bals uit. De finale in dat jaar tegen AC Milan ging verloren, maar Bals was aanvoerder van een sterk Ajax met onder meer Barry Hulshoff, Johan Cruijff, Sjaak Swart, Piet Keizer, Velibor Vasovic en Wim Suurbier. Nadat Heinz Stuy zijn plek onder de lat overnam vertrok Bals in 1970 naar Vitesse.
In de vijf jaar die Bals onder de lat stond bij Ajax veroverde hij vier keer de landstitel: seizoen 1965/1966, 1966/1967, 1967/1968 en 1969/1970. Daarnaast won hij als Ajacied in 1967 en 1970 de beker. Zijn laatste duel was op 10 mei 1970 op bezoek bij Telstar. Als aanvoerder stond hij negentig minuten op het veld. Bals speelde uiteindelijk 216 officiële duels voor Ajax 1.

On This Day | Ajax pakt derde Super Cup na zege op Real Zaragoza
Ajax veroverde zijn derde UEFA Super Cup door Real Zaragoza op 28 februari 1996 met 4-0 te verslaan in Amsterdam. Na een 1-1-gelijkspel in de heenwedstrijd in Spanje maakten Danny Blind (2), Winston Bogarde en Finidi George het verschil in de return. Met deze overtuigende overwinning voegde Ajax opnieuw een Europese prijs toe aan de erelijst.