Media playback is not supported on this device
Farah, 33, has won the past four global titles over 5,000m and is looking to claim a second gold in Rio after winning the 10,000m.
He had to recover from a fall during his winning race on Saturday, and he was tripped again during the final lap of qualifying in heat one on Wednesday.
Farah stayed on his feet to finish in 13 minutes 25.25 seconds.
Ethiopian Hagos Gebrhiwet won the heat in 13:24.65, with Albert Kibichii Rop of Bahrain in second.
Butchart finished fifth in heat two to make it through to Saturday's final (01:30 BST, Sunday), crossing the line in 13:20.08.
Compatriot Tom Farrell failed to make the cut after finishing 20th.
Kenya will have no runners in the final, but Kenya-born American Bernard Lagat made the final at the age of 41.
Britain's Lynsey Sharp and Shelayna Oskan-Clarke have qualified for the women's 800m semi-final, alongside favourite Caster Semenya of South Africa.
Sharp, Commonwealth Games silver medallist in 2014, won her heat in 2:00:84. Oskan-Clarke finished third in 1:59.67 behind Semenya but progressed as one of eight fastest losers to the semi-finals, which start at 01:15 BST on Friday.
Great Britain trio Nick Miller, Mark Dry and Chris Bennett all fell short in the men's hammer throw as they failed to qualify for for Saturday's final (01:05 BST).
With the top 12 progressing, Bennett was the highest-placed Briton in 19th, throwing 71.32m, as Dry finished 21st and Miller 22nd.
Subscribe to the BBC Sport newsletter to get our pick of news, features and video sent to your inbox.
Defending champion Mo Farah and fellow Briton Andrew Butchart both reached the Olympic men's 5,000m final in Rio.