The 25-year-old, who finished last season on loan at Northampton, has agreed a three-year deal with the Reds.
Collins is Crawley's 12th signing of the summer transfer window.
"James wants a new challenge and he comes with a very good goalscoring record in League Two," Reds boss Dermot Drummy told the club website.
Collins, who has previously had spells at Aston Villa, Swindon and Hibernian, scored 15 goals in 49 appearances last season.
Find all the latest football transfers on our dedicated page.
League Two side Crawley Town have signed James Collins after the striker's contract at Shrewsbury Town was cancelled by mutual consent.