Murphy, ranked 48 in the world, became the first qualifier to win the tournament since Terry Griffiths in 1979.
It was a second defeat in a world final for Stevens, the sixth seed, who was beaten by Mark Williams five years ago.
Murphy came back from 10-6 down overnight, winning five out of the seven frames played in the afternoon, to trail by just a frame at 12-11 going into the final session.
Murphy produced a 107 clearance in the opening frame of the evening to level and then made a break of 55 in frame 25 to go in front for only the second time in the match.
Stevens responded with a 95 break to level at 13-13, but Murphy claimed the next two frames to regain the lead and he maintained his two-frame advantage at 16-14.
Following some high quality snooker from both players, Stevens knocked in breaks of 124 and 52 to level at 16-16.
A run of 97 in the following frame saw Murphy edge ahead again and he clinched victory with an 83 break.
The 22-year-old received a cheque for 250,000 pounds ($475,800). "I'm so glad I got over the line," he said.