I feel like Lance would be the one to propose but it’d in the worst possible situation.
Like, he doesn’t have a ring or a special night planned, it’s just a sudden thought he has when they’re in the middle of battle.
Keith and Lance have been dating for a while now (a year? Five? Idk, you decide) and one day when the team is separated and Keith and Lance are swarmed by Galra fleets. They’re standing back to back, covering each other.
And Lance just turns around and looks at Keith and all he thinks is
Holy shit I love this boy, I have to marry him.
So he’s trying to tell Keith but hey, these two are in the middle of battle they don’t have time to talk about marriage and a happily ever after.
But then they both manage to find cover. Lance is laying down defence fire before darting back down to where Keith is lying with his sword, trying to contact the others through the damaged comms and Lance just says over the sound of explosions and gun shots
“I want to marry you!”
And Keith is shocked at first, trying to process what his boyfriend just said and Lance repeats himself
“Lets get married!”
before Keith’s all like
“You’re proposing to me NOW?!”
And Lance tries to explain between attacks that he knows they’re at war and it’s the worst time to get married but he also knows that they could lose each other and at any moment and he wants to be able to call him his husband even if it’s just for one day.
And Keith just grabs his hand and runs through enemy lines, taking out Galra soldiers and telling him how much of an idiot he is.
But as they’re running away, Lance feels Keith’s hand tighten around his and he just says “yes”
And at first Lance is confused until Keith just glances back at him
“If we manage to get out of this alive, then yes, I will marry you.”
And Lance gets the biggest smile on his face because he has a fiance
Pidge over the comms: “Did my virgin ears just hear a marriage proposal”