Kaepernick, a former starter who led San Francisco to the 2013 Super Bowl but has since been demoted to backup, said he sat on the bench during the playing of "The Star-Spangled Banner" to make a statement about racial injustice in the United States.
"I am not going to stand up to show pride in a flag for a country that oppresses black people and people of color," Kaepernick later told NFL Media in an article posted on Saturday. "To me, this is bigger than football and it would be selfish on my part to look the other way."
Kaepernick appeared to be referring to police use of deadly force, which has come under increased criticism in recent years as incidents have been captured on cellphone video.
He said he was prepared for rejection by the public and did not warn anyone of his plans.
"If they take football away, my endorsements from me, I know that I stood up for what is right," Kaepernick said.
When Kaepernick came into the game at the team's home stadium in Santa Clara, California, fans greeted him with boos and cheers.
The team, which has unsuccessfully tried to trade Kaepernick to another team since his demotion, issued a statement of support after the game.
"The national anthem is and always will be a special part of the pre-game ceremony," the team said. "In respecting such American principles as freedom of religion and freedom of expression, we recognize the right of an individual to choose and participate, or not, in our celebration of the national anthem."
Social media was less forgiving. While some Twitter users supported his right to free speech, the feed of sports website Busted Coverage, which has 70,000 followers, called him "an idiot."
"Colin Kaepernick can get the hell out of our country. No respect for this guy," said Tyler Nelson, who calls himself a Carolina Panthers fan with 134 followers.
Athletes have long used their fame to make political statements, as typified by the Olympic sprinters Tommie Smith and John Carlos holding up their fists in a black power salute during a medals ceremony in 1968.
Two seasons ago, players on the NFL's St. Louis Rams entered the stadium for a home game with their hands raised, a reference to the "Hands Up, Don't Shoot" slogan adopted by protesters in demonstrations against the shooting of an unarmed black teenager in Ferguson, Missouri.