The 45-year-old American, looking for his first tournament win since The Open at Muirfield in 2013, is four shots behind Daniel Berger on five under.
Berger hit a 64 to reach nine under after two rounds, three clear of fellow US player Tom Hoge (69) in second.
Mickelson, Dustin Johnson and Brooks Koepka are tied for third but Wales' Jamie Donaldson dropped away with a 74.
Donaldson had been one shot off the lead heading into the second round and improved his score with a birdie on the 11th, his second hole.
However, a double bogey followed on the next and he dropped four more shots in six holes on the front nine to drop to level par.
By contrast, Mickelson looked in fine form as he continued his build-up to next week's US Open with a round that featured six birdies and only one bogey.
"I am putting well, no question," said Mickelson, a five-time major winner who needs to win the US Open to become the sixth man to win all four of golf's major tournaments.
"I didn't strike it as well as I have been this year for the first couple of days. It's just a fraction off. Hopefully I can figure out what the difference is because if I can hit a few more greens, the way I am putting, I should have a good chance."
We've launched a new BBC Sport newsletter ahead of the Euros and Olympics, bringing all the best stories, features and video right to your inbox. You can sign up here.
Phil Mickelson shot a five-under-par 65 to move into contention at the St Jude Classic at TPC Southwind on Friday.