Christian Tiffert put the visitors in front from the penalty spot after half an hour in an incident that saw Schalke lose their goalkeeper Ralf Fahrmann to a red card.
Klaas Jan Huntelaar equalised after an hour from another penalty with Rodnei this time given his marching orders to leave both teams with 10 men.
Dorge Kouemaha then scored the winner in the 72nd minute to inflict the first defeat on Schalke since Huub Stevens took over.
It was always going to be difficult for the home team after Fahrmann was dismissed for a foul on Kaiserslautern forward Kouemaha inside the penalty area.
Rookie Lars Unnerstall came on to replace youngster Julian Draxler, but the first thing he did on his debut was to pick the ball out of the back of the net after being beaten from the spot by Tiffert.
Schalke pushed for an equaliser, despite having a man less, and they were given the opportunity to level when Rodnei fouled Jose Manuel Jurado inside the penalty area.
The red card for Rodnei restored parity in terms of numbers and Huntelaar brought parity to the scoreline as he dispatched the second penalty of the evening.
The home side were now in the ascendancy, but they forgot to provide cover at the back, and they were punished as the Red Devils went ahead again on the counter-attack.
Pierre De Wit sent in a fine inviting cross for Kouemaha, who nodded in from close range.
Schalke intensified their attempts to score, but it just was not their night.
Benedikt Howedes' diving header wide of the post and a Raul shot which was tipped over the crossbar was the closest they came to levelling again as Kaiserslautern held on for only their second win of the campaign.