The 28-year-old forward spent the last five seasons with the Rams in the English Championship but decided to leave the club after his contract expired following relegation to League One.
His arrival takes the total number of summer additions at Ibrox to three, joining Scotland defender John Sottar and Croatian striker Antonio Colak at the Glasgow club, the latter having completed a £1.8million move from Greek side PAOK on Thursday.
Lawrence scored 35 goals and 25 assists in over 180 appearances for Derby, while he has also hit the net three times for Wales across 23 international caps.
“I am delighted to have joined Rangers and I’m excited to get started," Lawrence told the club's official website.
“The club is known worldwide for its history, successes and fan base and I look forward to being part of that going forward and getting to play in front of the supporters at Ibrox.”
Rangers manager Giovanni van Bronckhorst remains in the market for further additions but is delighted to secure another of his key targets.
“I am really pleased we have been able to secure the signing of Tom and he will further add to our attacking options,” he said.
“He has gained valuable experience over a number of years with Derby County and I look forward to working with him this season.”
Sporting Director, Ross Wilson added: “I would like to welcome Tom to Rangers, it is great to have him joining the squad this summer.
“He is another strong addition to the group ahead of the 2022/23 campaign.”