The 30-year-old has impressed after moving to Perth on a short-term deal, scoring three times.
A statement on St Johnstone's official website read: "Striker Steven MacLean has penned an extension to his current deal which will take him through to the end of season 2013/2014.
"The 30-year-old joined Saints in September on a deal to the January transfer window but this extension covers the remainder of this season and the whole of the next.
"The former Sheffield Wednesday, Cardiff City and Plymouth Argyle man has netted three goals so far.
"His contribution might have been greater were it not for a serious elbow injury sustained in the game against Dundee at Dens Park, although his absence from that was not as long as was first feared."