Afghan officials said the attack killed one person and injured 11 others. Karzai later appeared on a state-run television broadcast, The New York Times said.
Local media reports showed gunfire erupting near the grandstands as Karzai presided over a military ceremony during national Mujahedin Day celebrations honoring those who fought the Soviet invasion of Afghanistan in 1979.
The Taliban issued a statement immediately following the attack, claiming responsibility, CNN reported.
"Six of our fedayeen martyrs entered to the stadium for the ceremony. They were heavily armed with mortars and machine guns. This was an organized attack. When the national anthem started, they started the attack. Three were killed and three have survived," Taliban spokesman Zabiullah Mojahed said.
Taliban sources said their fighters were about 90 feet from Karzai and other dignitaries at the time of the attack.
Afghan Defense Ministry spokesman Zahir Azimi said authorities captured an undisclosed number of assailants.