Farah pulled away from Kenyan Isiah Koech and US training partner Galen Rupp to clock 12 minutes 56.98 seconds in his final race ahead of the June 22-24 British trials in Birmingham.
Koech was second in 12:57.63 with Rupp running 12:58.90, the first sub-13 minute display of his career.
"It was nice to get the win against a good field," said Farah who trains in nearby Portland under former marathon performer Alberto Salazar. "The pace went up and down but towards the end it picked up again."
The weather also played a role.
"It was a little windy today so it wasn't as perfect as you would like but at the end of the day the most important thing was the win," said Farah.
He now moves on to Park City, Utah to train at altitude before going home for the trials.
"I will either run the 5,000 or 1,500 there," said the Briton. "In our trials you can do different events as long as you show good fitness."
The Olympic plan for Farah is to run the 10,000 and then tackle the 5,000 if his fitness is good.
"I think I am at the right place, right time now. I don't have to overcook it and must keep doing what we are doing," he said.