Work Text:
The timing couldn’t be more inconvenient. Keith has been looking forward to this — really. Even though his friends find it a bit bizarre, he never resented (that much) Shiro after his marriage to He Who Shall Not Be Named. They had rushed into life back on Earth, hadn’t let each other find themselves again after everything they went through. Keith was still searching for himself. Was Earth even where Keith belonged? And could Shiro ever feel at home anywhere else? So they took their space from one another and Shiro found someone else to lean on. Now, it’s been a couple of years, Shiro’s divorce was just finalized and well… Keith misses him. When Shiro offered to reconnect, his heart had fluttered and he’d spent the whole day uncharacteristically smiley and blushing. Of course he said yes.
They made the plans two weeks ago and Keith hadn’t had a clue where he was on his cycle. Now that he knows what he is — Galran and an omega one at that — he’s grateful that he understands what’s going on with his body, but especially with his half human heritage, his beats can be a bit unpredictable. He usually only gets it once, maybe twice a year, and he didn’t think he was due quite yet when he agreed to meet Shiro on a nearby tropical planet for a spa day. He hadn’t even thought about his heat cycle when he let Shiro book the tickets and now, as he sits on the space shuttle taking him from his most recent post on a recovering Galra colony planet to the site of their hot springs getaway, he can feel the telltale signs.
He’s sweating under his Kevlar suit and he feels extra… sensitive. His chest especially is starting to drive him wild. His pecs are especially… filled out these days. When his heat approaches, they swell a little bit and his nipples become insanely reactive. Sitting in his seat by the window, watching the stars go by, Keith is getting a little aroused just from the feeling of fabric against his nipples. Whenever he shifts subtly, his clothes move against them and it’s taking a fair bit of will power not to just rock back and forth to rub them. He’s grateful the touch of armor over the groin on his suit obscures that his dick is a little hard. Everything that grazes his chest just feels so good, but he can’t be in a state like this right now.
He’s about to reconnect with his former best friend, the previous biggest (current?) crush of his life, fresh out of an ended marriage. He can’t let his biology overrule his mind.
When the shuttle lands, he takes his overnight bag and hurries off the ship.
The planet reminds him of more tropical regions of Japan, with humid air and greenery abound. It’s a short ride on a rented hover bike to the hot spring where he’ll be meeting Shiro. The air whipping against him sends shivers up his spine, his nipples tingling, begging to be played with. Fuck.
Keith arrived at the spring, his face flushed, a little sweaty, which he hopes he can blame on the heat. Before he can walk inside to check in at the reception desk, Shiro steps out.
He must have just come from The Atlas. He’s in a skin tight white sweater with a gold captain’s emblem on the breast and black dress pants, a dressed down version of his uniform. His hair is still stark white, making his dark eyes stand out, and Keith isn’t prepared for the way his whole body throbs at the sight of him.
A lot of things happen when he goes into heat. He doesn’t just get more sensitive, he gets (obviously) insanely horny and needy. That need leads him to act a bit more… flirtatious than his usual gruff demeanor and the worst part is, he can’t help himself. He turns into a slutty little thing that just needs to be taken and fucked, acting shy to rile up his potential mate.
“Shiro!” He beams, running over and throwing his arms around his former husband’s broad shoulders to hug him tight. He shivers when their chests press together, resists the urge to grind on him as he squeezes.
“Keith!” Shiro laughs, hugging him back. “Hey, how are you?”
“Good,” Keith purrs as he tucks his face into Shiro’s neck, breathes in the scent of his dorky tropical cologne and herbal aftershave. Intoxicating.
“You feeling okay?” Shiro doesn’t move to break the hug, strokes Keith’s back instead, but he can tell something is off. “You’re a little warm.”
“It’s just hot here,” Keith lies and lets himself linger for one more precious second before pulling away. “The water will help.”
“You’ve gotta be boiling in that suit, come on.” Shiro puts a hand on Keith’s lower back that makes his heart hiccup in his chest before steering him inside.
He stands quietly while Shiro confirms their reservation and checks them in. They’d taken time off in the middle of the week, so that the place wouldn’t be crowded, and when Shiro leads him back towards the showers and changing rooms, Keith thinks they might be the only ones there.
He hasn’t undressed in front of Shiro (or vice versa) since they were best friends on the ship together and Keith feels himself buzzing with a mix of nervousness and excitement as they enter the changing area. There’s no one else in sight as Shiro opens their lockers and toes off his shoes to put inside.
Keith watches as Shiro pulls his sweater off and folds it neatly, putting it away before thumbing open his pants.
“What, did you miss the sight that much?” Shiro teases, giving Keith a playful nudge in the side. They did use to change in front of each other often, after all.
“Sorry, I was just zoning out,” Keith says and finds that he doesn’t really care that Shiro will see right through the transparent lie. His eyes drift to where Shiro’s pants are undone, the waistband of his underwear showing, a faint patch of trimmed hair leading up from it to his belly button. His mouth waters. “But… I can’t complain about the view.”
“You’re too much.” Shiro chuckles as Keith turns around. “Need help?”
“Mhm.” Keith lifts his hair up out of the way and bites his lip as Shiro sidles up behind him. He feels deft fingers take hold of the zipper on his suit and drag it downwards, opening the fabric all the way from the back of Keith’s neck to the start of his ass. He sighs at the relief of the cool air, rolling his head a few times to loosen his neck. “Thanks, ‘kashi,” he says, the familiar nickname rolling easily off his tongue. He’s the only one who ever called Shiro that. He pulls his arms free of the suit and pulls it down, hissing when the cool air hits his nipples.
“You okay?” Shiro asks, concerned, but his face is pink when Keith turns around, his suit hanging off his hips. He’s still covered from the waist down and Shiro’s eyes drift right to Keith’s chest.
“Um, sorry,” Keith says, feigning bashfulness. His pecs are fuller and firmer than usual and his nipples are completely hard. The pink perky little nubs are standing at perfect attention and Keith wants so badly for Shiro to touch them, to squeeze his tits and roll his nipples under the pads of his thumbs. “My heat is a little close apparently, so my chest is kinda… swollen.”
“That must be…” Shiro swallows hard, searches for the appropriate word. “Uncomfortable.”
“Well, I just don’t want to make you uncomfortable, you know,” Keith says, looking down. “I’m a little… My body kind of does its own thing.” He takes a deep breath and decides to be bold, looking up and directly into Shiro’s eyes as he pushes his suit the rest of the way down. He lets it fall at his ankles and steps out, kicking it aside to be dealt with later as he stands before Shiro, completely nude with his little cock exposed and hard. He shaves everything clean because he hates the feeling of body hair under the full body suits he wears on a day to day basis. There’s nothing to hide or obscure his dick flushed pink and sticking out straight with arousal.
“Keith,” Shiro breathes, eyes shamelessly raking over him. His gaze lingers on his tits then down to his cock, then back to his chest again, taking it all in.
“Sorry, it wasn’t my plan to show up like this.” Keith pouts and squirms a little in place, desperate to grab his own chest and squeeze, to rub his needy cock up against something hard. “It just kind of started.” Flushed, he makes a show of dropping his hands down, hiding his erection from Shiro’s view. “I’m sorry,” he says again, even though he’s not. “Shit, I’m so embarrassed.” He isn’t.
“No, no, don’t be sorry. It’s okay,” Shiro assures, reaching out and touching Keith’s shoulder. His hand is warm. “I mean, I’ve seen it all, haven’t I?” He offers a kind smile. “No need to be embarrassed. Just… be comfortable.”
“You’re sure?” Keith bats his eyes up at him and Shiro nods. Fuck, his heat makes him bold. The hormones override his nerves, his anxiety, turn him into an easy slut happy to do what it takes to get what he wants and right now, he wants Shiro.
“Of course. It’s your biology, you can’t help it.” Shiro steps back and rids himself of the rest of his clothes, tucking his pants and underwear neatly away before doing the same with Keith’s suit for him.
Keith doesn’t bother trying to hide the way he stares at Shiro’s cock. Fuck, it can’t possibly be, but is it even bigger than the last time he saw it? He’d always stolen glances in the locker and changing rooms. Everything in him twitches needily at the sight of it, the long thick length, the suckable little mushroom head, the vein that runs along the underside. To Keith’s delight, Shiro’s half hard.
“Do you want to try getting in the water?” Shiro asks and Keith winces.
“Y-Yeah, just a second, I’m… Fuck.”
“What’s wrong?” Shiro frowns, stepping close again as Keith leans back against the wooden doors of the locker units.
“Sorry, I just… Ugh, my chest gets so sore.” Keith pretends to be pained (though he is a bit sore in truth) and lets out a shaky high pitched breath as he grabs his own pecs in his hands and squeezes. Through half lidded eyes, he sees Shiro watching him, eyes transfixed on his chest as Keith rolls his nipples under his thumbs and trembles.
“Does that… make it better?”
“Yeah, it relieves the pressure.” Keith sighs and tips his head back, pinching his nipples and twisting them with a pathetic whimpering sound he knows will go straight to Shiro’s cock. “Fuck, s-sorry, it just…” His hips jerk forward against nothing, the tip of his dick shiny with precome. “F-Feels good.”
“Keith…” Shiro is looking at him with conflict in his eyes. He’s always valued propriety, but even with Keith’s occasionally low self esteem, he knows he looks irresistible right now. Shiro’s cock has certainly taken notice of him, filling out and stiffening right before Keith’s eyes. “Let me… I… I don’t want to overstep, but don’t you… need help?”
“I couldn’t bring myself to ask you,” Keith whines. “I didn’t know my heat would be coming or if you’re comfortable seeing me this way, but…” He puts on his best puppy dog eyes, writhing pitifully under his own touch as he tugs on his nipples. “I n-need you to touch me, ‘kashi. I’m sorry, I didn’t mean to put you in this position, but… hhh,” he tips his head back against the lockers and rubs hard at his nipples, his cock bobbing with nothing to rut against as he arches his back. He can feel himself getting slick and wet, his hole clenching around nothing. He needs Shiro on his tits first, but it’s not long before he’ll need his cock too. The heat needs what it needs and Keith’s mouth is already watering with anticipation.
“I-I can help, Keith, it’s okay,” Shiro soothes, walking up to stand in front of him, between Keith’s feet in his wide stance.
Still groping his own chest, Keith whimpers and pushes his hips forward, brushing the wet tip of his cock against Shiro’s navel. “S-Sorry,” he stutters, only a tiny bit ashamed.
“That… That’s okay, baby,” Shiro says in a low voice and a wave of heat washes over Keith, so intense that his cock visibly twitches, drools pre-come from sheer arousal at the pet name. “Tell me where you need me to touch you.”
“H-Here, first.” Keith takes his hands away and pushes his chest out, breathing heavily. “Rub them for me a-and squeeze them and… If you could suck them, it would feel so much better. Just know, I-I might…”
“You might lactate?”
Keith swallows hard, his face blushing with genuine embarrassment as he nods. When Galra omegas go into heat, they can sometimes produce milk, and he usually does. If Shiro sucks on his tits, he’ll get a taste. Part of him is terrified his alien biology might scare Shiro right off, but at the same time, this is who Keith is. If Shiro wants him, wants to play with his tits and his dick when he’s mid-heat, then he needs to be able to handle it. Can he?
“That’s okay, baby,” Shiro soothes. The pet name again makes Keith throb. “I don’t mind. Come here.” He leans in close, brushing their noses together, hovering with their lips so near to touching, Keith can feel the soft puff of his breath against his mouth. Then, Shiro kisses him. It’s firm at first — steady and warm and searing with closed lips. Then Shiro’s tongue runs over his bottom lip, licks into his mouth and starts tracing his teeth. He groans against him, letting Keith feel the vibration of the sound as his massive hard cock brushes Keith’s thigh and makes him shiver all over again. “Your poor little tits, baby,” he murmurs, kissing along Keith’s jaw. “You need me to take care of that for you?”
“Yes,” Keith gasps, pushing his chest out. “Shiro, please.”
“Fuck, Keith. I’ve thought about this so fucking much.” Shiro is taller, so he has to bend his knees a bit, kissing down Keith’s neck along the way. But he dips his head just fine, buries his face in Keith’s swollen chest for a moment and nuzzles it, breathes him in. Just when Keith is ready to beg him for relief, he mouths his way over to one of his nipples and locks his lips around it.
“Fuck!” Keith yelps and clamps a hand over his mouth, writhing in pleasure as Shiro begins to expertly suckle at his tit. He sucks on it rhythmically, stopping only to flick it with the tip of his tongue, lick long circles around it, work him up properly. He’s so sensitive, he can feel it through his entire body. Everything is hot, his nerves on fire just from the simple act of Shiro’s mouth on his chest.
Shiro brings his spare hand up and toys with the other nipple, rubbing it in little circles, flicking the perky pink nub. Keith’s chest feels swollen, his skin tinged pink as he feels an odd, but familiar sensation happening below the surface.
“Sh-Shiro, if you suck like that, I’m… I-I’m gonna…”
Shiro lifts his head and kisses him again, silencing Keith by licking into his mouth, strong hands grabbing his waist and keeping him pressed up against the lockers. “I know,” he murmurs between kisses, dragging his lips along Keith’s jaw, to his ears. He nips at the lobe, kisses the shell of it, makes Keith tremble. “Can I taste?” He asks, his tone impossibly kind. Keith was so afraid he’d find his body gross. Shiro can’t possibly know what it’s like to experience an alien heat cycle, but when he steals a glance down, Shiro’s cock is still fully hard. It’s shiny at the tip with pre-come and looking back up, Shiro’s expression is full of desire. He isn’t grossed out. He wants Keith. He isn’t just saying it to spare his feelings, he wants to taste him.
“Are you sure?” Keith checks anyways, looking down at where a faint bead of white is starting to pearl at the tip of one of his nipples. His face burns with a mix of arousal and embarrassment. He could easily feel like a freak right now, but instead, Shiro is looking at him like he wants to eat him.
“I’m sure.” Shiro cups his pec in his hand, the one just starting to leak and squeezes, watching in awe as the pearl grows in size, becomes a drop that drips from Keith’s nipple and lands on his abs. “Fuck, Keith,” he growls and dips down again, licking the drop directly from Keith’s spin with a heady moan.
“Sh-Shiro,” he stammers, gasping as Shiro nips at his ribs, starts to kiss his way back up his torso to his chest.
Shiro looks up at him through silver lashes, gives his pec another squeeze and latches onto it. Not only does he tongue and suck at his sensitive nipple this time, but he drinks. He sucks to draw out the milk and he savors it on his tongue. He groans like he’s bitten into a decadent dessert and he reaches one arm around to grab Keith’s ass.
“W-Wait, Shiro, I’m…” Keith struggles to form words as Shiro suckles on his chest, trembling from the stimulation, but he doesn’t know if Shiro is prepared to feel him slick and messy. “I’m wet,” he croaks as Shiro spreads his ass, fingers grazing the slickness gathered between his cheeks.
Shiro swallows and pulls off of his chest, nuzzling his face into Keith’s tits with a contented sigh. “Yeah you are, baby,” he coos, sliding his fingers between the curves of his ass cheeks to graze along his hole.
“Shiro!” Keith squeaks. His hole flutters around nothing, desperate for someone inside, for an alpha, or maybe just the love of his life to shove their cock in him and fuck him stupid.
“Your body is amazing,” Shiro whispers, standing up straight and nuzzling his nose into Keith’s hair, still toying with his hole. He isn’t pressing inside, just teasing. He takes the tips of two fingers, his middle and his ring, and swirls them around Keith’s puckered entrance. He’ll apply some pressure, torture Keith with a preview of what’s to come, but doesn’t slip inside.
Between them, both of Keith’s tits are leaking, little beads of white dripping down his chest, some even reaching his hips. He’s so wet with slick that his inner thighs are wet and slippery, his cock bobbing helplessly, begging for stimulation.
“I can’t even decide where to touch you.” Shiro chuckles and kisses the corner of Keith’s mouth. “I want to drink from your pretty tits and finger your cute little ass, but how can I neglect your cock, hm?” He keeps circling Keith’s hole with two fingers and brings his other hand to take hold of his dick, stroking him with a loose grip that makes Keith’s breath hitch.
“Fuck!” Keith hides his face in Shiro’s neck, bites onto his shoulder to quiet himself while he whines pathetically. He rolls his hips, pressing back against his fingers as if he can make them fuck inside of him through sheer will power, pressing forward against his fist to chase the sweet relief of friction on his oversensitive cock. He can’t stop whining, the pathetic sounds bubbling up from the back of his throat. It’s not enough. He needs Shiro’s cock in his ass and his mouth on his tits, but he can’t have everything all at once. Hot tears well up in his eyes, his lips wobbling as he clings to Shiro. “Sh-Shiro, I need… N-Need more, please, I-I need you.”
“Tell me what you need, baby boy.”
“All of you.”
A low laugh. “Be more specific, sweet thing.” Shiro kisses his forehead, impossibly tender. “Do you need me to drink more? To fuck you?”
“Both,” Keith cries, clinging desperately to Shiro with his arms thrown around his neck. He’s on the brink of sobbing. “It feels like I have a fever. I-It hurts and I feel so empty.”
“Okay, okay, take a deep breath for me.” Shiro keeps one hand diligently pumping his fingers inside of Keith, massaging his prostate, keeping him sane while he brings the other up to wipe his tears away. “Poor baby, you’re burning up.”
“Mhm.” Keith sniffles, still squirming even with Shiro’s fingers taking the edge off. He feels more desperate than ever, not just to soothe his heat, but because it’s Shiro. He loved him for so long. He still loves him. He felt like part of him died, like the most important chapter of his life was over when Shiro married that fucking rando. He’d felt like nothing, cast aside, abandoned, unwanted, like he’d lost not just the person he was in love with, but he’d lost his best friend. When he heard about the divorce, his heart had felt lighter, a weight lifting off his shoulders. Even if they couldn’t fall in love, he could have his friend back.
But here Shiro is.
Maybe his body did it on purpose. Years of yearning and wanting and needing culminating in his body taking over, putting him into a heat he wouldn’t be able to resist acting on, a heat Shiro wouldn’t be able to resist relieving for him.
“Keith?” Shiro asks softly and Keith’s heart tugs. The sound of his name on Shiro’s lips is like a lyric.
“Yeah?”
“I’m gonna do whatever you need me to do,” he says, kissing his cheek. “Whatever you want me to do.”
Keith shivers, squeezes Shiro’s fingers inside of him by tensing his muscles. “But?”
“I just want to ask you something first.” Shiro takes a deep breath and leans their foreheads together, his words a whisper right against Keith’s lips. His free hand lingers on Keith’s cheek, caressing it. “I know, it’s… been a long time since we were close, but I care about you so much. I’ll take care of you no matter what as long as you want me to.” He rubs his fingers into Keith’s prostate as if to illustrate his point, watching as it makes him preen and whine. “But is all of this just your heat talking? Do you just want me physically or do you…?”
“I want all of you,” Keith gasps, tipping his head back against the lockers to instinctively bare his neck. “I want you to be my friend again. I want you to fuck me because my heat is insufferable without you. I want you to love me and date me and fuck me again when this stupid heat is over.” He’s babbling, but he doesn’t care, clinging desperately to Shiro, praying this doesn’t scare him off. “I love you,” Keith croaks, curling a hand around the back of Shiro’s neck. “I want you to take care of me right now, but I don’t want it to be a one time thing. I want you all the time in every way.”
“I love you too.” Shiro smiles at him, nuzzling their noses together. “You’re not gonna take any of that back in the morning?”
Keith shakes his head. “Does that mean you’ll spend the night with me?”
“If you’ll have me.”
Keith lets out a whimper and surges forward to close the small gap between them, locking their lips together in a searing kiss and running his tongue over Shiro’s bottom lip. He nudges it into his mouth, licks along his teeth until Shiro groans. “Then fuck me,” he mumbles against his lips. “Please. I want you. I love you, so take me.”
“Okay then.” Shiro chuckles and carefully removes his fingers, kissing the corner of Keith’s mouth when he pouts in response. “Come with me to the water, baby. I’ll put you in my lap and you can ride at your own pace. The water will help regulate your temperature.”
“Hurry then.” Keith frowns and grabs Shiro’s hand, his inner thighs slick and shiny, rubbing together as they walk, nude, towards the locker room exit that leads to the springs. He’s more than grateful that they came in the middle of the week, when no one is around to witness the various ways they’re probably violating every rule of this place.
They step out of the locker room onto a cool stone path, tall dense vegetation shrouding the various pools in shade as they approach the water. It feels like their own little world. Built into the stone of the ground are multiple springs and pools, some hot, some cool, some saltwater, some fresh, each labeled with a simple wooden sign.
“Come here, baby, let’s make sure your temperature doesn’t get out of control,” Shiro coos to him like he’s a long term mate, an established partner that’s more than used to guiding Keith through his heat cycle, rather than an estranged best friend who just returned his love confession.
The change in temperature from the cool inside of the locker room to the humid heat of the springs makes Keith sway, his vision wobbling for a moment as he leans instinctually into Shiro for support.
“You poor baby,” Shiro sighs, bending down to lift Keith up into his arms, the cool metal of his prosthetic soothing the overheated skin behind Keith’s knees as he princess carries him towards one of the cool water pools.
Keith has put on a lot of muscle in the past few years. He’s still lithe and feminine, but he’s not the scrawny twink he was back when they lived on the castle ship together. Shiro makes him feel weightless though. He carries him effortlessly, lets Keith’s head loll naturally onto his shoulder. “Thanks, Shiro,” he mumbles, a bone deep exhaustion overcoming him even as he’s simultaneously desperate to fuck, to let Shiro’s cock scratch that itch inside of him.
“Here we are,” Shiro says softly when he walks up to the edge of one of the pools. This one is made with cool gray stone and the water is labeled as naturally chilly. “I want to cool you down, but the water is gonna make it hard for you to take me inside.” He sets Keith down gently on the edge of the water and steps in first, standing in the waist deep pool and holding a hand out. “So I think I should enter you out of the water and then I can lift you into it.”
Keith blinks. “Um… Makes sense, but how-”
“Trust me.” Shiro flashes a smile and stands between Keith’s parted knees, pressing a kiss to his forehead as he drops one hand to give Keith’s desperate little cock a few strokes.
“Fuuck, Shiro,” Keith groans, head tipping back.
“Be a good boy and do what I say, okay?”
He bites his lip and nods.
“Lay back. Keep your legs spread open and your feet in the water.”
Keith obeys. His knees rest on the edge of the pool and he lies back against the flat stone, spreading his legs.
Luckily, Shiro is taller than him, so the positioning isn’t all that difficult. He takes two fingers and swirls them around Keith’s hole, teasing him, making sure he’s slick enough — he’s more than slick enough. “Ready?”
“Please,” Keith pants far more desperately than he intends to, but he doesn’t care. He holds his legs wide open and watches as Shiro sidles up between his thighs, takes his thick cock in hand and lines up with Keith’s ass. “Fuck, you feel so big, hhh, need you, Shiro, need you,” he rambles as the blunt tip begins to press against him. For a moment, he’s afraid Shiro is actually too big, that his muscles won’t relax and give way, that Shiro will have to stop and prep him more before they can fuck. The thought fills him with utter agony, but Shiro shifts forward and Keith’s body gives way. He opens and unfurls for him like a flower, letting out a long shuddering gasp as Shiro slides his cock inside the tight slick heat with little resistance.
“Fuck,” Shiro swears, eyes fluttering shut. He strokes his hands up and down Keith’s thighs, still trying to soothe him even as he tries to cope with overwhelming pleasure. “You’re so tight… So wet for me, Keith baby, you feel so good.”
“Fuck me,” Keith begs, hands coming up to his nipples to toy and tug at the sensitive nubs. They’re still wet with milk, little drops squeezing out of the ducts the more he pulls at them.
“Just one more thing, baby, here, come with me.” Shiro leans over him, wraps one strong arm around Keith’s waist and, without letting his cock slide out, hauls him up into his arms.
Keith wraps his legs around Shiro’s hips and throws his arms around his shoulders, his breath hitching at the change in angle as Shiro carefully maneuvers them into the water together. A raised stone bench beneath the surface of the water gives Shiro a place to sit with Keith in his lap, cock still lodged firmly inside of him for Keith to rock against at his pleasure. The cool water soothes his feverish skin, balms that bone-deep ache, washes away some of the uncomfortable sweat as Keith begins to chase immediately what he needs.
“Shiro, Shiro, fuck, fuck me,” he whimpers helplessly, bouncing in Shiro’s lap beneath the water. He’s so fucking slick inside, so absolutely soaking wet, that even under water, he can ride Shiro’s cock. He’s never been so full. He’s never been so satisfied by the feeling of someone’s cock inside him, filling him to the brim, like Shiro was molded just for the pure purpose of fucking Keith just the way he needs during his heat. He digs his nails into Shiro’s shoulders, lets out a sob of pleasure as he rocks back and forth, back and forth, arching his back and rutting his own little cock up against Shiro’s abs for friction.
“Good boy, fuck, good baby. You’re doing so well,” Shiro praises, his strong hands on Keith’s waist to help him ease up and down, conserving his energy. He ducks his head and sucks one of his nipples into his mouth again, making Keith cry out. They’re being so loud at this point and in the locker room as well, there’s no way the staff of the place is oblivious to what they’re doing, but they paid good money and if they’re not bothering any other customers, they seem to be content to let them do their thing. Shiro tongues Keith’s nipple, suckles on it until he’s drinking again, moans against his chest like he’s eating dessert all while Keith bucks his hips wildly.
Keith feels out of his body. He can hardly tell where he ends and the water begins, where Shiro begins, what’s slick and what’s water and what’s milk and what’s pre-come. It’s like he’s floating and every time he seats himself in Shiro’s lap, his cock nudges his prostate just the right way to make him see stars and feel sparks up his spine. He’s so out of control, there’s one point where he thinks he might be pissing himself, but it doesn’t stop his rhythm and Shiro doesn’t seem to mind it. One of the hands on his waist slides around and down to grab his ass, groping it under the water as it splashes around them.
When Shiro has sucked one side of his chest dry, he moves to the other, drains that one too then drags his tongue all over Keith’s neck, his ears, making him shiver in ways he didn’t know he could. “You are the hottest fucking thing,” he growls, pushing his hips up to meet with Keith’s bouncing. “You make me so fucking crazy, Keith. Wanna fuck you like this every day.”
“Please,” Keith pants, his exhaustion mounting as he chases his peak. He’s so close. His cock is twitching with the need for release and if it wasn’t for the heat, he wouldn’t want this to ever end. But biology drives him forward. He needs to come and he needs to feel Shiro come inside of him. “You can fuck me as much as you want. You can do anything you want to me. I-I’m yours, fuck, Shiro, I’m yours.” He sobs and buries his face in Shiro’s shoulder, shaking as his climax swells inside of him. “T-Touch me Shiro, please. G-Gonna come, need to come.”
Shiro grunts in affirmation and reaches between them, wrapping his hand around Keith’s tiny cock and tugging on it in time with the rhythm Keith’s riding him at. He can encompass the full length in his fist, squeezing it gently and stroking rapidly, his own breath heavy and picking up as Keith starts to tense around him.
“I-I’m… Oh fuck, Shiro, I’m… Fuck!” Keith squeaks and holds on to him for dear life. “I’m coming! Shiro, Shiro, I’m coming, fuck, fuck, I’m coming, ohmygod, holyshit, a-aahh!” He wails as he tightens around Shiro and comes in long messy ribbons over Shiro’s chest, marking him. Even as he shakes apart, he still manages to ask Shiro for what he wants most. “Come in me, Shiro, please, please, fuck, need to feel you come,” he whines until Shiro bucks up hard against him and comes with a low groan against Keith’s neck.
Keith can feel all of it. He feels the way Shiro’s massive cock pulses and twitches inside of him, a thick warm wetness spreading, painting his insides, filling him up.
He finally feels relief. Panting and holding onto his best friend, his lover, his everything, he feels sheer and utter relief for the first time, not just since his heat started, but for the first time in years.
“Shh, shh, just stay like this,” Shiro coos when Keith tries to lift up, wrapping his strong arms around his waist. He nuzzles their noses together, rests one hand on Keith’s ass as he kisses him sweetly on the lips. “Catch your breath before you move.” He kisses him again on the cheek. “Do you feel better?”
“Yeah,” Keith breathes, resting his forehead against Shiro’s. “I do.”
“How long do your heats usually last?”
“A couple days.”
“Mm.” Shiro hums and slides his other hand up Keith’s chest, rubbing his nipple under his thumb in slow little circles. “And… you’ll need to go again, yeah?”
Keith nods his head. “Probably in a few hours. Don’t feel like you have to-”
“Can I stay with you until the heat passes?” Shiro beats him to the punch. “We could get a hotel for a couple nights. There’s one not far from here.”
“You’d do that?”
“Of course.” Shiro nuzzles their noses together, watches Keith smile. “And I’d like to see you as much as I can when you’re not in heat too, you know. I want to be with you, Keith.”
Keith’s heart tugs. God, what he would have done to hear those words a few years ago, but it doesn’t matter anymore. He’s here, in Shiro’s arms, with his promise to be by his side. Maybe his stupid alien biology is good for something after all. He might not have had the guts to make such a bold move on Shiro if his heat didn’t kick in. “I’d like that,” he says and lets Shiro gently ease him up and off of his cock before settling right back down in his lap where he belongs.
They should probably move to a different pool, but for now, Keith rests his head on Shiro’s shoulder and lets himself relax. He’s right where he needs to be.