Fitzpatrick made five birdies and two bogeys in a three-under-par round to end on eight under, one behind Emiliano Grillo and two adrift of Hoffman.
Paul Casey (72) is four under, while Australia's world number two Jason Day moved to three under with a 71.
Rory McIlroy is one over following a dramatic outward nine in a round of 71.
The Northern Irishman, ranked third, opened on the back nine with two bogeys, before a birdie, an eagle and a double bogey when he found the water on the 16th.
Hoffman, 40, bogeyed the opening hole but then made seven birdies to reach the halfway mark at 10 under par.
"If you get in the fairway you can sort of attack," said the American.
"The greens are surprisingly receptive. You can shoot at some of those pins that in the past you haven't and I was able to take advantage of it.
"I'm pretty happy. I hope I can keep it going the next few days."
Fitzpatrick, 22, closed with back-to-back birdies to stay very much in contention.
"It was a good day," he said. "I didn't feel quite as in control of the golf ball as I did yesterday but I made a couple of good putts coming in and made a good score."
England's Matthew Fitzpatrick goes into the weekend two shots off leader Charley Hoffman after a second-round 69 at the Arnold Palmer Invitational.