ESPN reported on Thursday that Vieira is due to have a medical in London on Friday and will finalise terms on what is expected to be a five-year contract.
Porto have confirmed that Arsenal have reached an agreement for an initial fee of €35m for Vieira, with a further €5m in potential add-ons.
“FC Porto has reached a preliminary agreement with Arsenal FC for the permanent transfer of Fabio Vieira for €40m, of which €5m are dependent on the achievement of sporting goals,” a club statement read.
“It is further informed that the final agreement is still being finalised and is expected to be done in the coming days.”
Vieira played a key role as Porto lifted the Portuguese Liga title for a 30th time last season, in which the midfielder scored seven goals and recorded 16 assists in all competitions.
He also made five appearances in Europe last term, including two Champions League group stage games and four appearances in the Europa League knockout stages.
The 22-year-old has featured for the Portugal youth teams but has yet to make a senior appearance.