The 30-year-old plotted his way cautiously around the hard and fast Real Club de Golf El Prat, grinding out 15 pars and three birdies in a closing 69 that landed his second European Tour title – his first since the 2010 Madeira Islands Open.
Overnight co-leader David Howell left himself with too much ground to make up following uncharacteristic mistakes on the outward half, while a superb late charge from the evergreen Miguel Angel Jimenez ultimately proved enough only for a share of second place with Howell, Francesco Molinari and Edouard Espana.
Jimenez put early pressure on the leaders with a sparkling run on the front nine, holing his second shot to the 465-yard fifth for an unlikely eagle and following with birdies at the sixth, eighth and 12th.
But the defending champion, who made a thrilling hole in one at the eighth in the second round, failed to convert further birdie chances after a bogey at 13 until he closed with a four at the par-five last to cap a commendable 67 which gave him the early clubhouse lead at six under.
Morrison opened with four pars before chipping in for birdie from the back of the fifth green, and he picked up another shot at the ninth to extend his advantage over the chasing pack and complete an outward 34.
The world No 296 barely faltered after the turn and made a series of clutch par saves, including a nerveless up-and-down from sand at the 17th which gave him the luxury of a three-shot lead heading to the 72nd hole.
And Morrison wrapped up victory in confident style, pitching to 12 feet after going long and left with his second before rolling in the putt for his fourth birdie of the week at the closing hole.
Howell found himself five behind his compatriot at the turn after a wayard drive at the sixth cost him a shot, and he got into further trouble at the ninth as he ran up a double-bogey six to slump to four under.
He coughed up another shot at the 11th, although he rallied bravely with birdies at 14 and 15 and another at the last salvaged a one-over 73.
Molinari stayed within striking distance of Morrison for much of the day following a bogey-birdie-birdie-bogey start, and he broke a run of seven consecutive pars with birdies at 12 and 13 to get to seven under.
But the Italian’s challenge effectively ended with bogeys at 16 and 17, and a birdie at the last for a 71 was not enough to deter the leader.
Halfway leader Espana birdied the final two holes to return a 69 and earn a share of second, while Emiliano Grillo endured a torrid back nine after briefly claiming a share of the lead with Morrison, after nailing his fifth birdie of the round at the eighth.
The Argentine dropped a shot at the ninth and came home in 38 to card a disappointing 71 which left him five off the pace, while Jose Manuel Lara birdied the final three holes in a best-of-the-day 66 which lifted him to four under alongside Jorge Campillo.
Pre-tournament favourite Sergio Garcia had given himself a chance to contend with a brilliant third-round 67, but three bogeys over the first eight holes of his final round scuppered his hopes as he laboured to a 73 to finish outside the top 20 on one under par.