Perine, 25, initially joined the Bengals off waivers from Washington in 2019.
He played all 16 games with one start last season with Joe Mixon banged up. Perine saw 74 touches for 367 yards and three touchdowns in 2020.
He saw action on 207 offensive snaps and 288 on special teams.
Perine entered the NFL as a fourth-round choice of Washington in 2017. He also has spent time with Miami.
Perine’s most productive season came as a rookie in Washington when he appeared in 16 games with eight starts. He had 197 touches for 785 yards and two touchdowns.