Hundreds of people were watching a T20 match between the Boost Defenders and Mis Ainak Knights at Kabul International Cricket Stadium at the time of the explosion.
The blast killed two civilians and a police officer and left 12 people injured, including two children. Two police officers were also among the wounded.
The bomber is believed to have struck after being stopped at a checkpoint while walking towards the stadium.
“The security forces by sacrificing themselves have prevented the attacker from reaching the crowd (inside the stadium) and creating a catastrophe,” said police spokesman Basir Mujahid.
The Shpageeza Cricket League, Afghanistan’s annual domestic T20 tournament, features six teams and runs from 11 September until 22 September.
All teams have a handful of foreign players, with many coming from Sri Lanka, Zimbabwe and South Africa.
Players were on a break and not on the pitch at the time of the explosion.
No one has claimed to be behind the bombing as yet, but both the Taliban and Islamic State have carried out previous similar attacks.
Cricket was banned in Afghanistan during the Taliban’s rule between 1996 and 2001, but the sport has since seen a revival.
The national team, playing in northern India, recently beat Ireland in a series of one-day internationals.
In June, Afghanistan was granted full membership of Test status at the same time as Ireland.
It has not yet used its Afghan grounds for any international matches, with a stadium in the UAE named as its official ‘home’ ground.
The explosion came as Pakistan, where visiting teams have stayed away for many years because of the security situation, successfully staged a Pakistan v World XI T20 match in Lahore, as part of a process to revive the sport in the country.
Former England player Paul Collingwood was among the World XI team seen by 20,000 fans being defeated by 20 runs.