Gomez scored from the spot in the 37th minute, and again in the 55th at the second attempt, before Thomas Mueller set up his third goal in the 69th.
Kaiserslautern's Ivo Ilicevic received a straight red card in the final minute for a kick on Anatoliy Tymoshchuk.
Canada defender Kevin McKenna scored an 88th-minute winner - three minutes after going on a substitute - as Cologne twice came from behind to win 4-3 at Hamburger SV.
Also, defending champion Borussia Dortmund and runner-up Bayer Leverkusen finished 0-0 and without a man each.
Leverkusen defender Michal Kadlec earned a second yellow card for a bad challenge on Mario Goetze in 64th, and Goetze received a straight red for a flick in retaliation at Hanno Balitsch in the 77th.
''We were clearly the better team in a great game - up to the red card,'' said Leverkusen coach Robin Dutt. ''But in the end, the draw is fair.''
Both goalkeepers were in inspirational form, Roman Weidenfeller denying Leverkusen's Andre Schuerrle and Stefan Reinartz early on, while man-of-the-match Bernd Leno pulled off outstanding reflex saves against Shinji Kagawa twice and substitute Ivan Perisic.
Mats Hummels thought he'd scored from Ilkay Guendogan's free kick in the 83rd, but referee Wolfgang Stark ordered it retaken - after sending a Dortmund technical assistant to the stands - and Hummels was wide from the second attempt.
''It wasn't a world-class performance (from Stark) but it was an outstanding football game,'' said Dortmund coach Juergen Klopp.
Elsewhere, Nuremberg beat Augsburg 1-0, Freiburg overran Wolfsburg 3-0, and Werder Bremen won 2-1 at Hoffenheim.
Despite playing without the injured Arjen Robben, it was Bayern's ''best game of the season'' for coach Jupp Heynckes.
''The team played as if everything was a matter of course,'' Heynckes said. ''However, we have to make more of our chances. We didn't allow anything in defense - I'm very happy about that. I said that the team would improve from game to game and I think that we can still play better.''
Kaiserslautern defender Rodnei was involved in both penalties for Bayern, conceding the first after the ball hit his hand in the penalty area.
Itay Shechter should have made more of Manuel Neuer's mistake three minutes later, but the Israeli hesitated with the Bayern 'keeper off his line and then passed to Clemens Walch, who was offside.
Kaiserslautern had only two shots on goal in the first half, compared to five alone for Gomez.
Rodnei conceded his second penalty with a clumsy challenge on Mueller. Kevin Trapp saved from Gomez, who scored at the second attempt.
Mueller was a constant menace for the Kaiserslautern defense, beating a number of defenders on the left before cutting back for Gomez to shoot straight past Trapp.
Hamburg is bottom of the table with only one point from four games, and coach Michael Oenning's position is under pressure after conceding 14 goals.
''This is a tougher pill to swallow than the (5-0) defeat to Bayern,'' Oenning said. ''We played good football (but) didn't take the chances to make it 4-2. I never had the feeling at this time that we could lose.''
Mladen Petric scored a penalty for Hamburg in the 11th minute, before Adil Chihi equalized 10 minutes later with an easy tap in.
Cologne coach Stale Solbakken introduced Lukas Podolski at halftime, and the Germany striker had an immediate impact with a driving run on the left before crossing for Milivoje Novakovic to score in the 49th.
However, Slobodan Rajkovic scored on his Hamburg debut in the 59th, when he was in the right place after Son Heung-Min's header hit the post.
Son gave Hamburg the lead for the second time three minutes later, when he took the ball past Andrezinho with his right foot before curling it past goalkeeper Miro Varvodic with his left.
Dennis Aogo and Novakovic were then booked for a dispute in which the Cologne striker appeared to pull the Hamburg defender's nose.
Cologne equalized again in the 84th, when another substitute, Christian Clemens, was unmarked to score off Mato Jajalo's corner.
McKenna completed a remarkable turnaround when Drobny failed to clear a free kick from Sascha Riether, and the 31-year-old Canadian scored through a crowded area.
''It was no game for a coach with a pacemaker,'' said Solbakken, who had a pacemaker fitted after a heart attack in 2001. ''I'm very happy because we were much stronger mentally.''
Freiburg gave coach Marcus Sorg his first Bundesliga win through goals from Oliver Barth, Erik Jendrisek and former Wolfsburg player Cedrick Makiadi, who scored with a spectacular volley from 15 yards.
In Hoffenheim, the home side went ahead through Roberto Firmino in the 37th, but Marko Arnautovic equalized a minute later.
Claudio Pizarro crossed for substitute Markus Rosenberg to score the winner in the 83rd.
Substitute Alexander Esswein gave Nuremberg victory over Augsburg with a fine individual effort in the 76th.