The 28-year-old turned down a new deal at Vale and opted to join the Bantams until the end of the 2017 season.
Marshall, who played 49 times for Vale last season, is the fifth signing at Valley Parade this summer.
His arrival softens the blow suffered earlier on Monday where the Bantams lost Oliver McBurnie to Premier League Swansea for an undisclosed fee.
Bantams boss Phil Parkinson said: “Mark is a great signing for us and we are delighted to have him on board.
“He can play on the right hand side or the left, and he is comfortable with both feet.
“He also has that extra power and pace that we have been looking to add to the squad.
“His ability to go past a player in a one-on-one situation gives us a really good attacking option.”