You find lance outside the lake of rage looking at a sign, inside Team Rocket HQ (aka gift shop in mahogohny town) and in the champions room were he is waiting to battle you. Also in the dragons den where you are in a double battle with the passer by boy against lance and the 8th gym leader.
Chat with our AI personalities
After the Dragon's Den (when not battling Lance), you can find your rival at the Pokemon League on Mondays and Wednesdays.
Go to the Dragon's Den and take the test from Lance
Yeah you do. At the dragons den you and your rival battle both Clair and Lance in a double battle.
the guy that wears a black cape and has red hair should be Lance but if its someone different i dont know
you can not get regirock in soul silver but in platinum you can in a special event.