Иван Князев родился в г. Нефтеюганск (ХМАО) 5 ноября 1992 года. Воспитанник школы московского «Локомотива». Первый тренер – Е. Б. Рева. Играет на позиции центрального защитника.
В детстве Иван занимался мини-футболом в родном Нефтеюганске, а первым тренером юного игрока был его отец – Евгений Борисович Рева. В 14 лет Иван переехал в Москву и через некоторое время стал чемпионом России по мини-футболу в составе «Дины».
Затем Иван перешёл в большой футбол, поступив в школу-интернат московского «Локомотива». В 2010 году несколько месяцев провёл в составе ФК «Москва», но после расформирования клуба вернулся в «Локомотив», за юношескую команду которого выступал в Первенстве Третьего дивизиона.
В 2011 году 18-летний защитник перешёл в краснодарскую «Кубань», где провёл 48 матчей и забил 3 мяча за молодёжную команду. Во второй части сезона-2012/13 Иван перешёл в московское «Торпедо», где дебютировал в ФНЛ, а в следующем сезоне помог команде выйти в РПЛ. Помимо 13 матчей в ФНЛ, защитник сыграл в домашней стыковой игре против самарских «Крыльев Советов» (2:0).
В сезоне-2014/15 Князев в составе «Торпедо» дебютировал в Премьер-лиге в матче против екатеринбургского «Урала», в который защитник и перешёл летом 2015 года. Всего за «Торпедо» Иван провёл 27 матчей.
В сезоне-2015/16 Князев провёл 8 матчей за молодёжную команду «Урала», после чего, в марте 2016, был арендован латвийским ФК «Рига», за который в 19 матчах забил 1 гол. По окончании срока аренды футболист вернулся в Россию и выступал на любительском уровне на протяжении около года.
В 2018 году Князев подписал контракт с латвийской «Валмиерой», за которую провёл 2 игры, а в первой половине 2019 года выступал за грузинский «Зугдиди».
Летом 2019 года защитник подписал контракт с омским «Иртышом», выступавшим в группе «Восток» ПФЛ. В сезоне-2019/20 Князев провёл на поле «от звонка до звонка» все 13 матчей команды в ОЛИМП-Первенстве ПФЛ и Кубке России, оформив с командой выход в ФНЛ.
В составе молодёжной сборной России U-21 под руководством Николая Писарева защитник стал победителем Кубка Содружества-2012, сыграв во всех 5 матчах турнира. Князев регулярно вызывался в молодёжную сборную, в том числе на Евро-2013 и на матчи квалификации к Евро-2015, защищая цвета национальной команды вместе с Кокориным, Смоловым, Черышевым и другими известными российскими футболистами.
В августе 2020 года принял предложение от руководства ФК «Звезда» и укрепил защитную линию пермской команды.