The deal is reported to be in excess of £350,000, the highest fee ever paid in women's football.
The Spanish giants had two previous bids for Walsh rejected, but stepped up their efforts to sign the midfielder in the final days of the transfer window.
The 25-year-old, who started every game for England in their victorious Euros campaign in July, had one year remaining on her contract at City.
The departure of Walsh follows several other City players who have left the club, including Lucy Bronze, Georgia Stanway, Caroline Weir and Janine Beckie, while Ellen White, Jill Scott and Karen Bardsley have retired.
She will join her England and former City teammate Bronze, who joined Barcelona on a free transfer this summer.
Walsh, who was named MVP of the Euros final against Germany, will travel to Barcelona in the coming days.