Shahid Afridi scored the fastest ODI century in 37 balls against Sri Lanka in 1996. This record stood for decades until AB de Villiers scored a century in 31 balls in 2015. Afridi's innings was remarkable for its sheer aggression and came when he was just 16 years old.