Kaepernick gikk inn i 2016-sesongen som en konkurrent for starterstillingen med Gabbert. Den 3. september 2016 utpekte hovedtrener Chip Kelly Gabbert til kampstarter for begynnelsen av sesongen. Før kampen mot Buffalo Bills i uke 6 annonserte Kelly at Kaepernick skulle stille til start, hans første kampstart i sesongen. Den 13. oktober ble det annonsert at 49ers hadde omstrukturert kontrakten hans, og gjort den om til en 2-årig kontrakt med en spillerklausul for neste sesong. Han fullførte 13 av 29 pasninger for 187 yards og en touchdown, med 66 yards på løp, i 45–16-tapet mot Bills. Den 27. november hadde han 296 pasningsyards, tre touchdownpasninger og 113 yards på løp i et 24–31 tap mot Miami Dolphins. Han ble den femte quarterbacken i NFLs historie, med Michael Vick, Cam Newton, Randall Cunningham, og Marcus Mariota til å ha minst tre touchdownpasninger og 100 yards på løp i en kamp. I et tap i uke 13 mot Chicago Bears kastet Kaepernick bare for fire yards før han ble erstattet med Gabbert. Han stilte igjen til start uken etter, og kastet for 183 yards og to touchdowns i et 13–41 tap mot Atlanta Falcons. Den 24. desember hadde Kaepernick 281 yards totalt med to touchdownpasninger, én interception og en touchdown på løp, samt en 2-point conversion på 49ers' kampvinnende drive i en 22–21 seier over Los Angeles Rams, lagets første seier i sesongen med Kaepernick som starter. I 2016-sesongen spilte Kaepernick i tolv kamper, og avsluttet med 2 241 pasningsyards, seksten touchdownpasninger, fire interceptions og 468 yards og to touchdowns på løp.