"The suspect then turned toward the special agent. The special agent, fearing for his safety and all the passengers in the terminal, discharged his weapon at the same time it appears the suspect may have shot himself," Smith said.
The man died at the scene. An autopsy will be conducted Friday.
Police would not say what kind of weapon the man had.
The terminal was closed immediately after the shooting. But later Thursday, parts of the terminal were reopened to passengers. The rest of the airport remained open after the shooting.
Darian Ward, a spokeswoman for the Houston Airport System, said some passengers who were scheduled to leave from Terminal B were rerouted to other terminals.
Dale Howard, of Tomball, was at the baggage handling area of the airport waiting for his sister to arrive on an incoming flight when he heard two shots fired from the floor above. A few seconds later, he said he heard three more shots.
"People were screaming. I knew exactly what it was gunfire," Howard said.
Police from an adjacent station rushed in, and Howard said he directed them to the floor above.
Greg Newburn, who was in the terminal waiting for a flight to Oklahoma City, said he was sitting in a cafe area when he heard two gunshots and after a pause, several more.
"It seemed like quite a few shots. Everyone was scrambling, running left and running right, turning tables up and hiding behind tables. Nobody knew what was happening. I couldn't tell where the shots were coming from," he said.
Newburn, from Gainesville, Fla., said it took him a few seconds to realize that the shots had come from the ticketing area, near the security checkpoint.