Brighton, with only one win from their previous four home games in the Sky Bet Championship, were good value for the three points and move into the top six.
The hosts threatened early on as defender Bruno Saltor had a low cross saved by Darren Randolph before Stephen Ward fired over from a pass by Rohan Ince.
Brighton skipper Gordon Greer was forced to put a dangerous ball from Mitch Hancox over his own bar before Albion midfielder Andrew Crofts had a volley blocked at the other end.
Spanish midfielder Lopez had a shot blocked midway through the half when compatriot Bruno delivered an accurate cross to the far post.
Lopez then forced Randolph to push his goal-bound shot round the post after Ince won the ball to set up the chance.
Brighton had a penalty appeal waved away when Crofts was brought down on the edge of the area by Hayden Mullins, and the resulting free-kick by Lopez was headed behind.
Randolph kept Birmingham on terms by producing two fine saves inside a minute to deny Kazenga LuaLua. First the Irishman dived full length to parry a fierce drive and then he kept out another stinging shot with a leaping save.
Birmingham midfielder Chris Burke shot over shortly after the interval, Randolph having thwarted LuaLua by diving bravely at the winger's feet moments earlier.
Brighton broke the deadlock in the 58th minute when Lopez struck a low shot with the outside of his right foot into the bottom corner. The Spaniard took his chance after Crofts forced Randolph to parry his shot and Birmingham were unable to clear.
Striker Jonathan Obika, signed on a 93-day loan from Tottenham, came on for his Seagulls debut with 25 minutes remaining in place of Leonardo Ulloa.
Randolph pushed a shot from Crofts round the post as Brighton sought to ram home their advantage.
Good work from Obika helped set up Lopez and his shot flew narrowly wide 17 minutes from time.
Brighton received an injury blow when Crofts had to be helped off with a knee problem and he was replaced by Andrea Orlandi.
Birmingham staged a late rally and a goal-bound shot by Burke was well parried by Tomasz Kuszczak.