Work Text:
Four hours.
Frank was more than pissed off. Gerard hadn't even said anything to him for more than four hours. Even when he pawed at his legs, when he nuzzled against him, when he whined—because yes, he had no other way to get Gerard's attention—, Gerard kept looking at an Excel file like it was the most important thing in the world. Frank even sat on the couch! He knows good puppies don't sit on the couch—so why wasn't he even getting scolded!?
Frank gave a lazy look to the clock on the wall. Four hours and a half. How long was Gerard going to do this? He almost wanted to speak to him, to take off his own collar, to walk on his feet just to see what Gerard would say... But he's a good puppy, he's trying to be a good puppy, even if Gerard is making it so damn hard.
He lets out a pathetic bark, resting his chin on Gerard's thigh. He can almost feel him wanting to look at him, but he simply keeps typing, the keyboard clicking. Frank mumbles again, this time louder, and seeing Gerard refusing to acknowledge him for the thousandth time today, he decides it's been enough.
He lifts his chin up, charging back, then harshly biting Gerard's leg as hard as he can, making him finally flinch as he looks at Frank.
"Ow—What the fuck!? Bad, bad dog!" He swats Frank's face away, and Frank doesn't pull away until Gerard grabs his hair, forcing him to let go of his thigh. "What is wrong with you? Shit, Jesus—Frankie, that seriously hurt."
Frank gives him a proud smirk—finally, he thinks. Even if he was being scolded, it was attention, and he was cheekily relishing in his success.
"You..." Gerard scowls, looking away from Frank, back at his laptop. "Seriously, what will I do with you...? Why did you bite me?"
Frank barks again, and Gerard stops trying to not look at him. He pushes his head against Gerard's arms, nudging him as small ruffs and woofs come out of his mouth. It's unconscious, in a way—he should probably be ashamed of himself, but Gerard's always been an amazing owner, making him a much better puppy. It's easier to let go of his humanity whenever he's with Gerard—he doesn't need words or dignity, because he knows no matter what, he will be loved.
"Oh, puppy... You just wanted pets, hm?" Gerard slowly closes his laptop, making Frank bark with excitement. "You cute little boy. Sit."
Frank tries to be obedient, immediately springing to his sitting position, unable to hold back the smile in his face as he barks louder at Gerard.
"Shh, shh, calm down, pup, no need to be so loud... Come here, you want me to pat you?" Frank nods, crawling closer to Gerard, nudging him with his head again. Gerard softly places his hand on top of Frank's scalp, starting to pat back and forth, giving Frank the enjoyment he's been waiting for for so long. "Awww, cute puppy. Who's my good boy? Hm? You are, yes you are!"
Frank lets out a loud moan at Gerard's praise, his face burning as he keeps talking to him as if he was a dog, with a high pitched voice and a simple vocabulary. He leans closer into Gerard's touch, his jaw hanging open slightly as his mind is clouded with the petting and praise.
"Frankie, listen," Gerard draws back, making Frank's eyes suddenly open, his smile fading away. "I know you want attention, but you need to know I have priorities. You can't be a brat and bite me."
Frank lets out a mix between a whine and a growl, scowling at Gerard. He wants to speak so badly, to explain himself, but he'll stay a good boy; he is a good boy, he just needed attention and didn't have any way to get it. He can't be ignored all day! What did he mean by priorities!? Is Frank suddenly not important anymore?
He whines, drawing away from Gerard, laying down as he wraps his body around itself, trying to look as small as possible. If Gerard had priorities, so be it. He basically told Frank he wasn't as important as work. Frank will die of starvation if he has to, just to ignore Gerard, since he decided he would be this cruel to him—
He opens his eyes as he feels Gerard's weight shift off the couch, finding him kneeling in front of Frank. "Puppy, don't throw a tantrum. Look at me."
Frank buries his face in his arms, trying his best to ignore Gerard.
"Frankie, why are you being disobedient...? You make noise all day, you sit in my couch—you know you can't do that if I don't say so—, you bite me, and now you're throwing a tantrum. Seriously, puppy? Look at me."
He scoffs in response, adjusting himself, burying his face deeper into his arms.
"I am not asking again, Frank. Look at me."
Frank feels his heart skip at Gerard's words. He never called him by his name whenever he was in subspace. It would always be Frankie or Puppy or Pup or Mutt if he was being a brat—but he'd never say Frank. He looks at Gerard through his eyelids with hesitation, his body tensing in anticipation. He flinches when Gerard brings his hand up to his head, making him roll his eyes as he starts petting Frank.
"As if I'd ever hit you without your consent. No matter how much of a brat you are, I'd never do that. You know that, right, Frankie?"
Frank feels his body relax under Gerard's touch, closing his eyes in trust.
"There, there." He starts petting Frank's back, rubbing his hand back and forth. "Good pup."
Frank lets out a small sigh, moving on the couch to lay down on his back, his paws hanging on the air as he pleads with his best puppy eyes.
"Aww. Frankie, you're the cutest. You want some belly rubs?"
"Woof! Woof!"
"Okay, just because you're so freakin' cute, puppy," he pulls his shirt up, exposing his belly, scratching lightly. "Geez, what'd I do to deserve such a cute puppy like you? If only you were more obedient..." Gerard's hand wraps nicely on the curve of Frank's waist, running down to the waistband of Frank's pants. Frank shivers in response, his eyes widening as he looks at Gerard's hand. "Listen, Frankie, I'll give you that attention you want so bad. There is one condition, though."
Frank barks excitedly, trying to stay still, to not scare Gerard's touch away.
"Wait until I finish this." He points toward his laptop with a flick of his chin. "Twenty minutes, tops. Take it as a punishment for disobeying me."
He whines, his anticipation quickly dying. Gerard gets up from his knees, sitting back up on the couch and laying his laptop on his lap.
"Get off the couch, too," Gerard speaks without looking at him, his attention back to the file. "You know you can't be in here without permission. Go to your bed."
Frank makes a noise of disapproval, yet he climbs off the couch, laying down on his bed on the floor, his knees to his chest as he holds his favorite squeaky toy in between his teeth, squeezing the squeaker. He wants to be obedient for his owner—he wouldn't like to be punished like this again. There's the fun punishments, like spanking, slapping, edging or overstimulating—that's when he can be a brat—but the idle waiting games are not even remotely fun for Frank.
He stares at the clock. Two minutes out of twenty.
He survived four hours. He can do this.
•••
"Puppy, I'm done!"
Frank stops biting the toy, looking at Gerard expectantly. He barks in excitement, getting up on all fours and crawling toward Gerard. Gerard pats the spot on the couch beside him. "You know you can be in the couch as long as I give you permission. You waited so patiently, so I'll be nice tonight."
Frank jumps on the couch, still on all fours as he starts licking Gerard's face, making him smile. "Hah—Calm down, I know you're happy, calm down—" he softly pushes Frank away, making him whine in sadness. "Put yourself together, Frankie. You know you have to be obedient for your owner."
Frank nods, deciding to stay in his sitting position to help himself control his urges, letting his owner guide him. Frank can already feel himself twitching in anticipation, and he lets out a breathless moan, a plead.
"Cute. Raise your paws for me, puppy?" Gerard slides Frank's shirt off effortlessly, then follows up with his own, discarding their clothes on the arm of the couch. "That's a good boy! You deserve a treat."
He loved when Gerard talked to him like this. In a sing-song tone, with a high pitched voice, and a big smile on his face. It made his mind melt—it made him really believe he was just a puppy.
"Here, puppy, puppy, come closer," he pats his own lap, signaling for him to sit on it. "Here's your treat, Frankie, come get it."
He tries his best effort to not kiss Gerard again, simply straddling Gerard's lap, wiggling with excitement. If this is what biting Gerard gets him, he must do it more often. Noted.
Gerard looks at Frank, fixing his hair and getting it out of his face. He gives Frank a trail of kisses, from his forehead to his neck. He hums in content as he reaches the collar, adjusting it so the tag is facing forward. It's a simple pink tag, labeled Frankie, with Gerard's number below the name. The collar is a pastel pink, similar to Frank's favorite belt, but sparkly, adorned with small gems. He remembers crying when Gerard gave him the collar.
"Since you were so adamant about this," Gerard starts, leaning back, unbuckling his belt as he speaks. "I'll let you do all the work. You're riding me, puppy, and you only stop when I come. If you stop before, though... There will be consequences, and they're not the good kind, Frankie."
He leans back, letting Gerard tighten the collar around his neck, letting him kiss his skin as if it was the last time they'd see each other, soft, loving.
"Color?" Gerard whispers to Frank's ear, and Frank gives him an approving bark, making Gerard shake his head, looking at Frank. "No, puppy. I need you to tell me."
Frank whines, trying to speak, but no words come out—puppies don't speak! Why is his owner making him do this?
"I gave your permission to speak, Frankie. Color?"
Frank clears his throat. "So fucking green," he says, his voice coming out hoarse due to not speaking for so long. He doesn't recognize his own voice, distant, uncomfortably human, and he resorts to barking again in order to return to subspace.
"There we go! Good puppy. Sorry I made you speak, but I had to. You're so strong and obedient! You really deserve the treat I have for you. Puppy, pants off."
"Woof!" Frank acknowledges, quickly crawling off of Gerard's lap to let help them both take off their pants. Gerard smirks at Frank, looking at his crotch, his boxers almost see-through at the tip, stained with precum. He whines in embarrassment, but Gerard reassures him, helping him take his boxers off, leaving both of them naked. Frank straddles Gerard's lap again, trying not to move too much without his owner's permission.
Frank gasps in surprise as a tight fist embraces both of their cocks together. He hisses as Gerard spits on them, using that spit as lube, jerking up and down, making him quickly moan loudly. He barks again, his hands hovering over his chest, trying his best to look cute for Gerard.
"Yeah, good puppy," he speaks, raspy with lust. "You're such a good boy for me—ah—shit, you look so hot..." He tightens his grip before letting go, trying to catch his breath as he looks at Frank.
Frank flicks the hair out of his face, anxiously awaiting for Gerard to continue, not wanting to beg—Gerard notices, praising him with a small kiss before grabbing his hips, guiding him as he slowly takes the tail plug out of his entrance, making the small amount of lube inside him drip out.
"All open and ready for me, hm, pup? Good boy, you're so thoughtful, so good for me," he keeps talking in a sing-song tone, diminishing Frank to a mess of weak barks and whines. "C'mon, puppy, I told you you'd have to work for it. Go ahead." Gerard leans back, spreading his arms on the couch, letting Frank take the lead.
He whimpers as he guides Gerard to his entrance, closing his eyes in expectation. He's stretched well—he made sure of that, just to please Gerard—, and yet he can't help the yelp that comes out of him due to the pain. He still pushes through, trying to not tense up, and as soon as he reaches the base, he lets out a breath he didn't know he was holding.
"Good job, that's my boy," Gerard praises, ruffling Frank's hair, making him smile wide.
Frank tries to gather his breath, trying to hold back—he feels close already, too full, too good. "Ah—Hmph—" he has to cover his mouth with his hand in order not to curse, his eyebrows furrowing as he feels himself twitching. He tries so hard to hold back, but he can't stop himself from coming with a loud noise, throwing his head back as his release falls on Gerard's tummy and chest. It feels too good, squeezing Gerard as he's still inside, jerking himself off until it hurts. As soon as he's off the high, though, panic hits, and his eyes widen, trying to spot any anger in Gerard's expression.
"Well... That was... Quick." Gerard says, dumbfounded.
Shit, Frank curses internally. Gee's mad, I came too fast, I couldn't control myself and now I'm gonna get punished and I won't even get to ride him—Fuck, fuck, fuck!
He whimpers, feeling the tears fill up his eyes, sniffing as he tries not to cry.
"Oh, puppy, no, I'm not mad. Come on, don't cry, it's okay, it happens," Gerard draws Frank closer giving him a soft hug, still inside him. Frank groans as Gerard's cock hits a deeper place inside him, the overstimulation bringing pain instead of pleasure. "You can still go for another, right, pup? You were so needy, after all..."
Frank sniffs as he wipes the tears away from his eyes, nodding, enthusiastic. He barks louder as he nods, almost begging Gerard to let him go at it again.
"Fine, fine, I'm not going anywhere... Go ahead, puppy."
Frank hisses as he starts moving his hips, using Gerard's shoulders to support himself as he moves up and down. He's a whimpering mess already, every thrust hurting, yet it's exactly the pain that lets him go for another round. He increases his pace as soon as he feels his boner come back, the pain finally becoming pleasure. Gerard sets his hands on Frank's hips, helping him move faster—he's unable to hold back his own noises as Frank increases the pace, and it takes all of his self control not to slam into him and fuck him against the couch ruthlessly.
"Good boy—that's my good boy," he groans in between praise, squeezing Frank's ass before landing a rough spank, making him gasp—Gerard can feel the way Frank tightens up around him, the way his movements are getting more desperate, more senseless, and he knows he's close. He spanks him again, making him moan louder, slamming into Gerard's lap, taking him in as deep as possible as he comes for a second time. Gerard bites his lip, trying his best not to come, not wanting it to be over. "Ah—Oh my God, puppy—"
Frank immediately starts moving again, jerking himself off as he rides Gerard, his legs and hips hurting from the force he's using to move. It's so, so painful, and he wishes he could stop, but he can feel the pain slowly warping into pleasure again—his whole body is begging him to stop, but he's not stopping until he makes Gerard come. He is a good boy, after all.
"Frankie... Oh my God, Jesus fucking Christ, Frankie, I'm close, I'm really close, you're gonna make your owner come inside you, hm? Yeah, puppy, keep moving, ugh—" Gerard bites his lip, his nails digging into Frank's ass as he comes deep inside him, while Frank lets out quiet moans of exhaustion as he comes for the third time.
Frank collapses on Gerard's chest, too tired to wipe away the tears in his eyes, letting out a pathetic noise with every breath. Everything hurt so much, and he was so exhausted, but it was exactly what he wanted—he was just a dumb, simple puppy, who only needed attention to feel content.
He feels himself returning to his body, and he isn't sure how long it's been—he knows Gerard cleaned him up, wrapping a blanket around both of them, and he was now kissing the top of his head.
He pulls back as Frank stirs, and notices the way Frank's look was less dazed, closer to himself. "Are you back?"
"Yeah," he shivers, wrapping his arms around Gerard's chest. "That was really good, Gee. Thank you. Fuck... My throat hurts... I barked a lot..."
"'Course, Frank." Gerard laughs at Frank's complaint. "It's fine. You were so good."
"I don't know why I did that. I just barked at you like some stupid fucking dog. That's weird as hell. Why do you... Why do you even like me that way?"
"Hey, I can't find it weird if it also turns me on. Besides, you enjoy it, right? You just seem so happy when you're my puppy..."
Frank nods, smiling. "Mm. It feels really good."
Frank sighs on Gerard's neck, feeling spent after overstimulating himself so much. He lets himself relax on Gerard's body, wrapped around him as he closes his eyes, the exhaustion catching up to him again.
There isn't a place where he would be happier than here.
