The 28-year-old – whose contract with Gerhard Struber’s side was due to expire in the summer – has signed a deal until the end of the 2028-29 season. The Red Dragons also hold a 12-month extension option.
“I know a few of the lads, I know what the squad is and how good it is, and for me now it is about showing some leadership, helping out with my attributes and what I’ve learned in the last ten years and helping an already good squad be better,” added Vyner.
It comes after Phil Parkinson’s side allowed former England international Conor Coady – a summer signing from Leicester City – to join Charlton Athletic on loan for the remainder of the season.
“Zak’s a really good Championship player, he can play across the back three and in midfield,” Parkinson told BBC Sport Wales.
“With Conor going to Charlton, we knew Zak’s contract was up in the summer and we’ve been having talks with Bristol City for a while. He’s a really good signing for us.”