Beijing Police confirmed a 26-year-old man from Inner Mongolia set the explosive off.
They said the man's hand was injured and he was taken to hospital.
People gathered outside the compound as smoke filled the busy city.
The blast rocked the site after a man reportedly threw a homemade bomb into the gated area, according to local media.
Chinese media say witnesses reported the man intended to hurl the explosive into the embassy but it exploded before he could get it over the fence, injuring people and a police car in its path.
The embassy is now closed to the surrounding corridors.
People in the area are posting pictures and video from the scene to Twitter and sharing them on Chinese microblogging website Weibo.
One video shows the military and police working around something under a blue tarp in the cordoned off area.
Witness Jimmy Zhong tweeted: "Something just exploded at the US Embassy in Beijing, China just a few min ago. Smoke everywhere."
BBC's China correspondent Stephen McDonnell said police were telling their crew not to film.
He followed the tweet with: "Things actually seem to be going back to normal here. People are lining up again for visas etc. This would probably suggest it wasn't all that serious."
Another journalist working for Republic TV, Aditya Raj Kaul, said he spoke to India's representative to Beijing, Ambassador Gautam Bambawle. The Indian Embassy is next door.
"We heard the blast. We are just next door. There are no fatalities. It was a low intensity blast. All Indians are safe," the man reportedly told the journalist.
He said Chinese police were examining a vehicle outside the US Embassy.
The incident happened in the Chaoyang district where there are a number of foreign embassies, including those of the US, India, Israel and South Korea.
The US Embassy has heavy security measures, including a bulletproof glass wall, and is America's third-largest diplomatic mission in the world, behind its embassies in Baghdad and Yerevan.