The Canadian international will remain in South Wales until the summer of 2021 after putting pen to paper on a fresh deal.
Hoilett was a key figure for Cardiff last term, scoring 11 times in all competitions and being voted Players' Player of the Season at the end of the campaign.
"Junior had a fantastic season for us last year and I think his new contract is just rewards for that," Cardiff manager Neil Warnock told the club's official website.
"I think he's looking forward to the challenge next season and I'm sure he'll play a major role in helping us try to stay in the Premier League."
Hoilett joined Cardiff from Queens Park Rangers in 2016.