The 26-year-old becomes Warriors’ tenth signing of the summer and will give Director of Rugby Alan Solomons another top-class option at fly-half.
Weir has won 27 caps for his country since his debut against France in the 6 Nations in 2012 and made two appearances at the 2015 Rugby World Cup.
He was included in all but one of Scotland’s 6 Nations squads between 2012 and 2017, missing out in 2015 due to an arm injury, and has also represented his country at age-grade and Sevens levels.
The experienced stand-off began his club career with Glasgow Warriors in 2010 and went on to make over 100 appearances for the 2014/15 Pro12 champions.
He moved to Edinburgh in 2016 and was the club’s top points scorer in his debut campaign. He has gone on to rack up 221 points in 30 games during his time at BT Murrayfield Stadium.
Warriors boss Solomons said: “We are delighted that Duncan has signed for the Club as he is a top-class player who possesses experience at the highest level in the game.
“He will provide us with another outstanding option at fly-half as we continue to build an exciting squad ahead of the 2018/19 season and we look forward to welcoming him to the Club.”
Weir said: “I am extremely excited to be moving to Sixways this summer to be part of a very talented squad.
“Warriors have shown this season that they can beat any team on their day and I am looking forward to working hard to help the Club have a successful 2018/19 campaign.”
Did you know?
Sign up to our mailing list here and we’ll keep you up to the minute with weekly updates from the world of rugby.