The 21-year-old becomes the Gunners’ first signing of the summer in a deal reportedly worth around £8million.
Tavares is a Portugal Under-21 international who has made 25 first-team appearances for the Lisbon club.
Arsenal manager Mikel Arteta told the club’s website: “We welcome Nuno to the club. He is a young player with great promise who has developed very well with Benfica in recent seasons and has also shown his quality by being part of Portugal Under-21s.
“Nuno’s arrival will give the squad extra strength and options in defence, particularly with this energy on the left side of the pitch.
“We look forward to Nuno’s arrival soon, his integration into the Arsenal family and playing in front of our fantastic supporters.”
Tavares, who played against Arsenal in the Europa League last season, will link up with Arteta’s squad in the coming days after travelling to the UK and completing isolation requirements.
As is club policy, Arsenal have not confirmed the length of Tavares’ contract other than to state it is a “long-term” agreement.
Technical director Edu said: “Nuno is a talented young player who was wanted by a number of clubs across Europe.
“He will provide strong back-up in the left-back position. We look forward to him growing and developing with us and becoming an important member of the first-team squad.”