The 36-year-old has made 628 Premier League appearances in 21 seasons with Aston Villa, Manchester City and Everton. He needs five more to break Ryan Giggs' all-time record of 632.
Barry, who had four years at Goodison, has signed an initial one-year deal.
"I think his attitude is gauged by the fact Everton offered him a two-year deal," said West Brom boss Tony Pulis.
"He's a fantastic player, really wants to play and I'm really looking forward to working with him."
Barry, who won 53 England caps, is West Brom's fourth signing, after Jay Rodriguez, Zhang Yuning and Ahmed Hegazi.
And Pulis sees him as a replacement for Darren Fletcher, who joined Stoke earlier in the summer.
"I want to come and help the team. That's always been the same for me wherever I have played," Barry said. "I want to help the team improve, work hard and hopefully add quality."
The Baggies won their opening match of the Premier League season, beating Bournemouth 1-0.
But Pulis warned on Monday that without additions to his squad, "it could be a long season".
"We're desperate to bring players in. We've got a squad of 17 and it's a top-age squad as well," said Pulis.
Barry is currently four games short of equalling Ryan Giggs' record for the most Premier League appearances, but the veteran midfielder now looks set to surpass that.
Giggs had played in every Premier League season before his retirement in May 2014, winning 13 league titles with Manchester United and racking up 632 appearances in the process.
Barry, meanwhile, made his debut at the end of the 1997-98 season and has played more than 30 games in all but one season since.
Of players still currently playing in the Premier League United's former Tottenham and West Ham midfielder Michael Carrick is the next closest on 479.
Find all the latest football transfers on our dedicated page.
West Brom have signed former England midfielder Gareth Barry from Everton for an undisclosed fee.