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.