The 22-year-old winger for Udinese has been the subject of a three-way tussle between Man Utd, Man City and the Spanish side.
Now Barca are said to have sealed the deal after offering £25 million upfront and a further £7 million in performance-related bonuses. United had reportedly put in a bid of £27 million last week.
El Mercurio quotes Sanchez's agent as telling him: "Apparently I could become the best player in the world so it is fitting that I play for the best team in the world."
The newspaper added that Sanchez has been excused from Chile's friendly with Paraguay on Thursday to undergo a medical with Barca.