Foster made up for two bogeys with five birdies for a 9-under total of 204.
Overnight leader Morrison had a two-shot advantage on the back nine, but a double bogey on No. 17 and a bogey on the final hole resulted in a 72.
Richie Ramsay of Scotland moved to third with a 68 despite bogeying his last two holes. Martin Kaymer of Germany and Thomas Levet of France remained in contention with 67s, three strokes off the pace.
Foster started the round in third place, four strokes off the pace. He made three birdies in five holes to help claim a share of the lead.
The round did not start well for Morrison, who pulled his tee shot into the water for a double bogey on the second hole. Morrison led by a stroke on the last hole, but missed a 12-foot putt to drop into a tie with Foster.
Richard Green's round was marred at No. 7. After his tee shot landed into the rough, he hit his second shot into some thicker vegetation and had to start from the same spot again, ending up with a quadruple bogey.
The Australian closed with a 76 to drop into a tie for seventh place.