The 28-year-old has been a regular in the Bluebirds' backline since arriving from Aston Villa in August 2016, racking up 41 appearances in his side's promotion-winning campaign last time out.
Bennett rejected a move to Fulham last summer and played a key part in helping Cardiff to finish second in the Championship, but rumoured interest from the Cottagers - also promoted to the top flight - has not gone away.
Fresh terms have now been agreed, though, and the Middlesbrough academy product is glad to have put an end to the speculation over his future.
"I'm really happy. It got sorted out very quickly, so now I can just concentrate on my football and hopefully having a good season," he told City's official website.
"I think we've got a good squad and the manager has signed some good, young and hungry players. There is no pressure on us really and we can just go out and enjoy it.
"We've got really nice kits – the home and away ones. That's nice for the fans and I just can't wait to get the season going. It will be nice to meet the new lads, hopefully have a good pre-season down in Cornwall and then get stuck into it!"