Work Text:
Ghost saw red when he arrived at the pickup point, and his eyes landed on Soap cheerily talking with Gaz as the rest of the team packed up their gear onto the helo. “What the fuck were you thinking, sergeant?” he shouted from afar, picking up the pace, the anger evident in his voice. It made Soap turn to face him, a grin immediately disappearing from his face; he knew exactly what Ghost was talking about.
“I was thinking about saving our asses, lieutenant,” Soap replied; Ghost’s rank spat out like an insult.
Ghost approached him and, without even slowing down, pushed him back into the row of ammo crates. Soap stumbled with an oof when his back hit the wood.
The mission was an easy stakeout until it wasn’t anymore; it turned hostile as soon as the mark showed up. They were both perched up with sniper rifles and on observation duty high in the building across from the RV point. When Soap, the stupidly brave and reckless man he was, noticed something was wrong, he immediately abandoned his post and rushed into combat to help their teammates, despite Ghost’s explicit instructions to stay put and wait.
“You could’ve died!” Ghost shouted, his face way too close to Soap’s, his breath heavy and ragged.
“And if I didn’t do something, Gaz would’ve died!” Soap stressed his reply with a shove, his hands shooting up to push on Ghost’s collarbones. Ghost swatted at one of his hands, throwing him off balance again, and punched him in the arm. He got one back straight in his sternum.
“You went against my orders.”
“Maybe I wouldn’t have to if your orders weren’t shite, huh? Ever thought about that?”
Ghost’s clenched fist shot up in the direction of Soap’s face, but someone grabbed him from behind, another pair of arms closing around his raised one. They kept him back, not allowing him to move until he dropped his hands.
“Hey, hey, that’ll do,” Gaz said next to his ear. He just now noticed that Price was also holding on to Soap to stop him from jumping forward.
Soap’s gaze was burning with unwavering anger, chest heaving. “Aye, that’ll fuckin’ do, Lt.,” he said and spat on the ground next to Ghost’s shoes, the tone of his voice impossibly unrecognizable when compared to the lust-driven panting he was hearing through the comms mere hours ago.
* * *
2 am arrived and passed, and Ghost was still wide awake. He didn’t know what exactly had him so wired, if it was the mission going awry or if it was just Soap’s insubordinate arse and their argument, but either way, something kept him awake. He glanced at the clock one last time before he got up, took a quick shower, and left their sleeping quarters.
The sound of the barbell hitting the rack was, honestly, disappointing to hear. He had no idea who in their right mind would work out at the ass crack of dawn, but, after all, he was also here, so he could only judge so much. He pulled his neck gaiter up and over his nose and went inside.
It was Soap.
Ghost moved quietly so as not to scare him, to stand in front of the bench. He waited for Soap to finish his reps and put the barbell back on before he spoke up, his arms crossed over his chest.
“What the fuck are you doing here, MacTavish?”
If Soap was startled, he didn’t show it. He looked up at Ghost with threaded brows. “What the fuck does it look like I’m doing here?”
He sat up, took a sip of water from the nearby bottle, and dried his neck and face with a towel before throwing it into his gym bag.
“Alright,” he said, standing up. “See ye at breakfast, Lt.” He grabbed the bag and shouldered Ghost aside, heading to the door.
“Do we have a problem, Soap?” Ghost asked, turning around.
“I dinnae, do we?”
Ghost rolled his eyes and grabbed Soap’s naked arm, the muscles flexing under his touch. “Fuckin’ look at me when you talk to me, MacTavish.” Soap spun around and pushed his hand off.
“Or what, Ghost? Are ye gonna shove me into the wall again? Yell at me some more? Are ye gonna fuckin’ fight me?!”
“You fuckin’ insubordinate piece of shit,” he spat out, his fists clenching.
“Ah, yer pullin’ rank on me now? I swear to god, sometimes I just wanna fuckin’ punch ye straight in that fuckin’ mask of yours.”
“Do it, then.”
Soap froze, his eyes widening subtly.
“Fuckin’ do it instead of just chaffing about it,” he spoke again and saw a glimmer of recognition in Soap’s eyes before they darkened, his gaze dancing over Ghost’s face, scrutinizing. Searching. “Or do you need some verbal instructions for that as well?”
Ghost raised his brow in a challenge. He smiled under his mask when Soap dropped his gym bag back on the floor.
“Oh, it’s fuckin’ on, ye bastard.”
They came here to blow off steam, and they gonna. One way or the other.
Soap cracked his knuckles with a shit-eating grin and stepped to the side, which Ghost immediately mirrored, a tingle of excitement running down his spine. They were circling each other, eyes locked, bodies ready to attack. Ghost felt both like a predator and a prey, watching Soap move, waiting for the slightest twitch of the muscle.
When Soap jumped, it was swift and sudden, and the pain of their bodies colliding was fucking riveting.
Ghost only managed to get his arms up in defense before Soap slammed into him with all his weight, one hand on Ghost’s nape, the other trying to immobilize his arm. He pushed back, though, not allowing himself to be subdued. Soap was firm and flexed under his touch.
They were grabbing at each other blindly, hands on each other’s sweat-slicked bodies, legs tangled in attempts to topple each other over. Their heavy panting filled the room, the sounds of their fight the only noise disturbing the nightly silence of the base. It was a long time since he felt so invigorated.
He managed to turn Soap over, trying to put him in a chokehold, but he escaped Ghost’s hold swiftly and elbowed him in the gut.
It left him doubled over, coughing. He panted, drawing heavy breaths, and the dull pain he felt mixed with the heat pooling in the bottom of his gut. He didn’t even stop to consider it, though, immediately swinging his right hook to punch Soap in the face.
He watched him stumble, a wicked grin blooming on his bloodied lips. “Fuck me, Lt., you can throw a punch.”
“You ever had any doubt about that?”
Soap jumped him again without another word.
This time, Ghost was prepared, so he managed to dodge it by jumping to the side. He grabbed Soap’s extended arm and pulled it, locking it behind Soap’s back.
“That’s all you got, MacTavish?” he whispered to his ear, pressing on his bent arm. Soap’s knees hit the mat.
“Fuck… You,” he said before throwing his head back and slamming it into Ghost’s face. He stumbled back, losing his grip on Soap, grabbing his nose instead. His eyes had filled with tears; the pain radiated to his jaw and forehead. A trickle of blood ran down his face before the mask absorbed it.
“Sonofabitch,” he cursed, looking at the grinning madman kneeling in front of him. He was also smiling, he realized, as he heard Soap cackle.
“Come on,” he said, still on the floor, sitting on his heels, blood from his lip staining his teeth crimson red. He spread his knees, his gray sweatpants stretching over his flexed thigh muscles and rapidly hardening cock, his tank top stretched and torn, the tear revealing his collarbones and half his chest. He looked up at Ghost with half-lidded eyes, looking him straight in the eyes. A goddamn challenge. “Fuckin’ ruin me, Simon.”
Ghost felt it, felt it deep inside his body, the wild heat climbing to the surface and setting his skin aflame. He let out a deep, low growl and looked at Soap kneeling in front of him, legs opened wide, inviting, chest pushed forward as he leaned back on his hands. Fuckin’ brat, begging to be taken, to be pushed around, to be put in place.
Ghost wondered if he looked as good all these hours ago when he was begging Ghost for the same thing while writhing on the dirty floor of the abandoned building.
Soap didn’t look away for even a second as Ghost approached him slowly to stand between his spread legs, his head craning more with every inch less between them. He didn’t flinch or drop his gaze, even when Ghost put his booted foot flat on his chest and pushed.
“You need me to tell you how bad you are again? Is that why you were an utter brat today?” he said as he forced Soap to lie down, his legs bent under him, his back arched uncomfortably. “All that just to rile me up, huh?”
Soap panted as Ghost moved his foot up, stepping on his face, finally making him look away. He moaned when Ghost pressed down his cheek to the floor. “Well, you got your fuckin’ wish, MacTavish. I am proper riled up. Do you even think you deserve my attention after what you pulled today?”
He laughed, a rough, throaty cackle, thick blood trickling down his throat, making it sound even deeper. Still, his hips bucked up, and Ghost could see him pressing his hands flat to the training mat, trying to grab onto the smooth surface of the faux leather.
“I remember you having a list of things to do to me. Now’d be the perfect time, Lt.”
“Don’t you fuckin’ bark orders at me, dog.”
“Fuck, yes, sorry, sir,” he panted under Ghost’s boot.
A fucking vision, the thought flashed through Ghost’s mind as he put his foot down and took in the view of Soap lying at his feet. Ghost’s gaze roamed over Soap’s body, the man’s legs trembling and dick straining the fabric of his sweatpants. His exposed stomach glistened with sweat, chest heaving with both exertion and arousal. His neck was still turned to the side – Soap wouldn’t look back at him without permission - throat bared, just begging to be bitten. Soap’s heightened pulse throbbed visibly under his skin, and Ghost wanted to run his tongue along the tensed tendon there, feel the palpitation of Soap’s heart under his lips, knowing that it was his doing that Soap was falling apart.
He wanted to run his teeth over Soap’s Adam’s apple as he swallowed a whine. Scrape them over the stubble and bite on the delicate underside of his jaw. Feel the moans vibrating deep in Soap’s throat. He wanted to ruin that pretty mouth of his, shove his cock so deep Soap wouldn’t be able to talk back to him for a week after that. He wanted to fuck his face so long Soap’s eyes would water, and Ghost could bet those would be happy tears.
He felt his own dick throbbing in his pants before he went down on his knees, Soap’s waist in between his thighs. He leaned over and grabbed Soap’s jaw, squeezing his cheeks. Soap’s eyes fluttered shut, and he stuck out his tongue, laying it flat over his bottom lip. Obedient. Waiting.
“Fuckin’ hell, Johnny,” Ghost said with a ragged exhale. “You want me to spit in your mouth, baby boy? Want me to mark you, to make you my good little pet?”
Soap keened, his whole body shivering. His eyes sprung open, just oozing lust and want as he met Ghost’s gaze. His pupils got even bigger and darker when Ghost reached to grab the hem of his mask.
Soap’s eyes roamed over Ghost’s face when he pulled the neck gaiter down under his chin. He couldn’t contain a shiver and a proud smile when he saw Soap’s gaze melting over his features with newfound heat.
“Open wide and say thank you,” Ghost said before he took a deep breath, gathered a pool of saliva behind his teeth, and spat directly on Soap’s tongue, getting the most perfect, needy little moan in return.
The tips of his fingers found their way to Soap’s lips, tugging on the bottom lip, tracing his still bloodied teeth. He put both fingers on Soap’s tongue then, playing with his own spit and smearing it around his mouth.
“Come on, sweetheart, you know what to do now.” Soap’s tongue lapped around the digits as he panted obscenely before closing his lips around the fingers to suck on them properly. Ghost could feel Soap’s hips pushing up, looking for friction. “Ah, I knew this mouth of yours has to be good for something other than talking shit,” he said, brushing his thumb over Soap’s upper lip.
He moaned around Ghost’s fingers, his tongue teasing the skin in between, his cheeks hollowing when he sucked on them. When Ghost’s fingers started slipping in and out of Soap’s mouth, his eyes rolled with a whimper.
“Look at you,” Ghost said with awe, “taking me like a proper slut. Would you like me to give you something else to suck on?”
Soap’s eyes widened as his gaze dropped to Ghost’s tenting pants. Ghost smiled, tracing his teeth with the tip of his tongue. “You want me to fuck your pretty face, huh? You want me to use you like a dirty fucktoy, Soap?”
“Christ, Simon…” Soap said, his chest heaving, Ghost’s spit-slick fingers resting on his bottom lip. Ghost could feel his dick, now hard as a rock, grinding his ass. “Yeah, I want that.”
“Yeah?” he murmured, dragging his hand to Soap’s throat. He felt the other man swallowing under his palm. His hot breath tickled Soap’s ear when he lowered his face to whisper. “It’s a pity you were a fuckin’ piece of shit today, then. I don’t think I’m in a giving mood.”
“Fuuuck—”
Soap’s pent-up lust made him snap, and his hand shot up, reaching to grab Ghost by the hair. But he was faster, catching the man’s wrist halfway to his head. He then rose on one knee, grabbed Soap’s hip, and, quicker than he realized what was happening, flipped him around, twisting Soap’s arm behind his back; his knees bent and wide, ass up and pushed out, face flat on the floor.
“I don’t recall saying you can fuckin’ touch me,” he hissed into Soap’s ear again, his fingers digging into Soap’s wrists, feet hooked over his calves. “Or am I mistaken?”
Soap was still panting, his breath ragged, voice shaky when he spoke. “No, sir, but yer so fuckin’ hot when ye talk to me like that. I couldn’t help myself.”
“It’s all just a bloody joke to you still, huh?” He could see Soap’s brows knitting in confusion, and he couldn’t believe he had to spell it out for the idiot. He buried his face in the crook of Soap’s neck. “You almost fuckin’ died today, Johnny,” Ghost murmured into his skin.
The scent of Soap’s sweat filled his nostrils when he inhaled. Its taste lingered on his tongue when he ran it over the fluttering pulse point on Soap’s neck. A subdued whimper Soap let out when he bit and kissed his nape was like music to his ears.
“I fucking had it in Las Almas, you can’t keep doing this.”
“Aw shit, Lt, were you worried about me?” Soap said, trying to twist his neck to look at the other man. “Didn’t you notice already? I’m indestructible.”
“Are you, huh?” Ghost spat out after a beat, Soap’s facetious tone putting a match to his anger, frustration buzzing under his skin.
Of course, he was worried. He was so fucking worried his hands trembled even thinking about the moment Soap ran out into the crowd, and Ghost couldn’t do shit to help him except keep his position and shoot anyone who might hurt his piece of shit sergeant. But he wasn’t about to admit that.
“I’m gonna destroy you if you don’t stop risking your stupid life like that.”
A throaty cackle. “With all due respect, Ghost, that doesn’t really sound like a threat in these circumstances,” Soap said, arching his back to rub his ass against the other man’s groin.
Ghost growled and yanked at his wrists, just enough for it to hurt. Ignoring Soap’s cry, he spat in his right hand and shoved it down the front of Soap’s pants; he grabbed the base of his dick, squeezing the balls.
“Hah, jesus, that feels—” Ghost tightened the grip and shushed him.
“What about this as a threat? Every time we do this - because I just know you’ll crawl back to me again, you filthy whore…” he said, his mouth still inches away from Soap’s ear, voice low and husky, edging on furious. Soap was whimpering underneath him, his hips jerking, trying to fuck himself into Ghost’s fist.
“I’m gonna do everything to rile you up, get you right fuckin’ there, right to the edge…” Ghost’s hand slid down slowly right to the leaking tip. He circled the swollen head with his fingertips, spreading the moisture, before he pinched the foreskin and slid it up and down, over and under the twitching tip. He could feel the body trapped underneath him trembling, spasming shivers punctuated by the moans breathed out in the rhythm of the movement of his hand.
“I will make you cry and pant and beg,” he continued, his hand stroking Soap’s cock at an unbearably slow pace, teasing. Tormenting. “But I will never, ever make you come again.”
Soap let out a dry sob and tried to hide his reddening face in his shoulder. He was drooling on the mat, panting, Ghost’s handiwork making him squirm. Ghost felt his dick twitch in his pants as he admired the view. Soap was an incredible sight, entirely at his mercy, bound and helpless in his hold.
“So, will you be a good boy for me on the next mission, Johnny? Huh?” he asked, letting go of Soap’s wrists to yank his head by the sweaty hair. His other hand picked up the pace, jerking Soap off more aggressively. “Or will you keep being an insufferable brat every…”
He twisted his hand to emphasize his last words as he picked up the pace. Soap’s hips jolted, his thighs trembling and breath quickening, a clear sign he was getting close.
“…damn…”
Another forceful jerk. Soap was whining and trying to move underneath Ghost’s weight, his face pained, his whole body pent-up and tensing. He was heaving; Ghost could feel his shoulders expanding under his chest.
“…time?”
As he jerked his hand for the last time and tightened his grip, he sank his teeth into Soap’s bulging trap muscle, pushing his whole body forward to cover as much of Johnny’s as physically possible. Soap choked on a whine as his orgasm rolled through his body with a shiver when Ghost bit harder into his skin. Soap’s hot come spurted onto Ghost’s hand, dripping down his fingers.
He was also panting now, his dick straining his pants. The breathless sounds Soap was making and his heated, fucked out body still twitching against him weren’t helping his situation, but he had already decided he’d take care of himself in his own shower.
Ghost let go of Soap’s hair and shoved his head forward, getting up. He stepped around the man, still lying on the ground in the same position Ghost put him in, eyes closed and breathing heavily, forehead resting on the floor.
He stood next to Soap’s face before he crouched down, and Soap immediately rolled his head to the side. His eyes sprung open, gaze landing on Ghost’s soiled hand hanging between his thighs.
“Something to fuckin’ think about in that post-workout shower, sergeant,” Ghost said, tilting his head. Soap’s gaze followed when he brought his hand up to his mouth and licked Soap’s come off of his fingers.
“Yes, sir,” Soap breathed out, stretching his legs to finally lay flat on his belly. A coy smile tugged on the corners of his lips, even though it lacked the usual cockiness. But he wasn’t fooling Ghost; he could see the ever-present spark of defiance in those half-lidded eyes.
Ghost stood up, pulling his neck gaiter over his face as he watched Soap scramble to his knees. “We’ve got a meeting with Price in the morning,” he said, taking the last look at those goddamned thighs stretching out Soap’s sweatpants before turning around to leave the gym. “Don’t be late.”