Tears streamed down Obama's cheeks as he summoned the memory of the 20 elementary school children slaughtered three years ago in Newtown, Connecticut.
"Every time I think about those kids, it gets me mad," the president said. "So all of us need to demand a Congress brave enough to stand up to the gun lobby's lies."
Obama invoked the memory of Martin Luther King as he outlined a raft of executive measures to regulate gun sales and curb illicit purchases, bypassing opposition from Congress.
"And the constant excuses for inaction no longer do."
Obama warned the US gun lobby cannot be allowed to block government action.
"The gun lobby may be holding Congress hostage right now, but they can't hold America hostage," he said.