Holmes started the round four shots behind Thomas but made crucial par saves down the stretch as the wind picked up at Riviera Country Club. He birdied his first hole of the day and played the next 17 holes at even par.
His victory in Los Angeles marks his first win since the 2015 Houston Open.
While Holmes played steady golf, Thomas struggled to make putts in the windy conditions, leading to back-to-back three-putts on Nos. 13 and 14. He carded a 4-over final round to finish alone in second.
The final group played 34 holes Sunday after darkness ended the first three days of play.
Si Woo Kim finished alone in third after carding a 5-under 66 for the lowest final-round score in the field.
Adam Scott - who entered Round 4 tied with Holmes - shot a disappointing 5-over 76 and dropped into a tie for seventh.
After a scorching third-round 65, Tiger Woods posted a 1-over 72 to close his Genesis Open in a tie for 15th.