The 25-year-old left-back has put pen to paper on a three-year deal at The Hawthorns, after the clubs agreed a fee thought to be in the region of £750,000.
He becomes the Baggies fifth signing of the summer, following the arrivals of Sam Johnstone, Jonathan Bond, Kyle Bartley and Harvey Barnes.
Albion fought off competition from Championship rivals Hull and Ipswich in order to secure Townsend’s signature.
Boss Darren Moore said: "This is another good acquisition for us. He's been on our radar for quite a while and I'm delighted we have beaten two other clubs to his signature."
Townsend came through the youth ranks at Hull and had spells on loan at Chesterfield, Carlisle, and Dundee.
He also turned out for Grimsby on a temporary basis where he played under recently appointed Ipswich boss Paul Hurst.
Since joining Scunthorpe in January 2016, he has made 88 appearances in all competitions, scoring five goals.
Townsend said: "As soon as I knew Albion were interested in me it was always the place I wanted to go."