The punt drifted lazily down the river Cam, the water dark and rippling beneath them as they floated past the honeyed stone of the colleges. The air carried the crisp bite of an English summer night, cool enough to raise goosebumps but not enough to send anyone inside. The soft murmur of conversation and the occasional pop of a champagne cork punctuated the quiet hum of the river, where other boats meandered through the shadows, all heading towards the same spot, a stretch of river through St John’s College, where the May Ball fireworks would soon light up the sky.
“Still don’t understand why they call them May Balls when they’re in June,” Pam said, swirling the wine in her glass.
“Cambridge has its own logic,” James, her boyfriend, laughed, his voice warm against her ear. “You just accept it. Like the fact that you can’t walk on half the grass unless you’re a don.”
“Or that despite doing a science degree I’ll get a bloody bachelors of arts! Arts! Like I’m some History student.” Ellie said dismissively from the other side of the boat, raising her glass in mock exasperation, knowing full well that most of the rest of the boat studied history.
Laughter rippled through the group, blending with the gentle creak of the wooden punt. Pam shifted slightly on James’s lap, she could feel his hard shaft pressing into her ass cheek. He was enjoying having her on his lap, rocking gently in time with the boat.
They had been dating for a few months now, and they were at the point in the relationship where every touch lingered, where private moments turned into desperate, passionate fucking. They could barely keep their hands off each other, finding excuses for fleeting caresses, whispered teases, and the kind of tension that made it impossible to be in the same space without wanting more.
Every glance was loaded, every brush of skin a promise. James’s hands rested lightly on her thighs, innocent in appearance but with just enough pressure to make her pulse quicken while their friends carried on chatting, oblivious. The need simmered just below the surface, threatening to spill over.
“Yeah, but you’ve got to admit,” Pam said, keeping her voice breezy as she leaned back against him, subtly pressing into his lap, “despite its quirks you wouldn’t want to be anywhere else.” As she pressed into him, she rotated her hips slightly grinding into him, letting him know she felt him and that she felt the same.
James gasped almost imperceptibly into her ear. She smirked.
“Oh I wouldn’t want to be anywhere but right here. ” he murmured, his fingers tightening just slightly on her legs.
The river grew busier as they neared St John’s, the once open water now thick with punts jostling for space. Laughter and conversation wove together into a low, drunken hum. The smell of champagne, damp wood, and summer grass hung in the air.
Pam shifted again, the pressure between her legs becoming impossible to ignore. James had been getting harder beneath her with every gentle rock of the punt, every subtle movement she made as they nestled together. His hands, still resting on her thighs, hadn’t moved much, but there was a different kind of tension in them now, gripping just a little firmer, fingertips pressing slightly deeper.
She took a slow sip of her wine, her eyes flicking around the other punts pressed close on either side. You could practically step from boat to boat if you wanted. No one was paying attention to them. Everyone was caught up in their own little worlds, talking, laughing, waiting for the fireworks to begin.
“I’m getting chilly,” Pam murmured, shifting slightly to reach for the blanket. She draped it over her lap, over James’s legs too, letting it settle in a soft, concealing fold.
James exhaled, slow and measured, his hands slipping under the fabric as if it were the most natural thing in the world. One palm traced up her bare thigh, fingers light against her skin. She fought the urge to shiver, her body already thrumming with anticipation.
Their friends were still talking, arguing about the best way to sneak into one of the balls without a ticket.
“You could always just dress as a waiter,” Tom was saying, swirling the last of his drink. “They never check.”
“Or better yet, pretend you’re a magician hired for entertainment,” Ellie laughed. “Just pull a rabbit out of your arse and waltz right in.”
"Speak for yourself, I don't tend to keep a rabbit up there handy." Tom joked.
"You're thinking of the wrong kind of rabbit." James laughed. "Ellie means the more rampant kind."
Ellie flushed and leaned over, smacking James over the head. "Asshole!" she muttered as everyone else laughed.
Pam barely heard them. James’s hand was higher now, teasing along the hem of her skirt. He wasn’t rushing. He wasn’t even making a show of it. It was all so effortless, so natural, like this was just a continuation of the same lazy touches they’d been exchanging all evening.
James’s fingers curled under the hem of her skirt, inching it higher. She shifted just enough to help him, letting her legs part slightly beneath the safety of the blanket.
Pam glanced at her friends. Ellie was mid-rant about a May Ball disaster from last year,something about stolen wristbands and an ill-advised climb over a college wall. Tom was pouring himself another drink, half-listening, half-scanning the other boats for familiar faces. Still, no one was looking at them. No one knew.
James kept up his silent assault, his fingers dipping between her thighs, teasing over the damp heat of her underwear. Pam bit her lip, her body betraying her with the smallest, involuntary twitch at the touch.
He exhaled against her ear, the warmth of it sending a shiver down her spine.
Still, they didn’t speak. They didn’t need to.
James’s fingers pressed, slow and deliberate, his touch disguised beneath the folds of the blanket, sipping under her underwear sliding directly over the throbbing heat of her labia.
She let her head tip back against his shoulder, her breath unsteady.
The river rocked beneath them, the night full of noise and light and tension stretched so tight it was almost unbearable.
She let her hand slide beneath the blanket, as if merely adjusting the fabric, fingers brushing against his wrist before dipping lower. She lifted herself slightly, finding his cock hard and straining against his trousers, and the thrill of it sent a pulse of heat through her. James tensed beneath her, the breath he took controlled, measured, but she felt the way his fingers faltered for just a second before resuming their steady exploration.
She dragged her nails lightly along the fabric, teasing, feeling the weight and shape of him through it. She still wasn’t looking at him, still keeping up the ruse, but her body knew what was happening. Her thighs squeezed together, her breath shallowed, her grip tightened.
James shifted slightly, just enough for her to work his zipper loose. Pulling him free so that his shaft stood thick and warm between her legs.
Her fingers wrapped around him properly now, lazy and teasing, hidden by the blanket, by the noise, by the world too lost in revelry to notice the slow, deliberate game they were playing.
She let her hand move, slow and deliberate, her fingers wrapping around him properly now. James tensed beneath her, his fingers pressing into her in response.
She leaned back, letting her head tip onto his shoulder, feigning a relaxed ease that did nothing to betray how turned on she was. The steady pulse between her legs, the damp heat beneath James’s teasing fingers, it was almost too much.
James’s breath was warm against Pam’s ear, his chest solid against her back. Beneath the blanket, her fingers moved in slow, lazy strokes, teasing along his length, feeling every twitch and pulse of him beneath her touch. His own hand had moved beyond teasing now, fingers delving into her slick heat with slow, deliberate intent. She fought to keep her expression neutral, to keep her breathing steady, even as a deep shudder ran through her.
She shifted in his lap, the movement subtle, disguised by the gentle rocking of the boat. The feeling of him pressed between her legs sent another thrill through her, and she let out the quietest breath, barely more than a sigh. James’s fingers pressed more firmly in response, his lips grazing her ear in silent encouragement.
Across from them, Tom let out a loud groan. “I swear, if they don’t start these fireworks soon, I’m going to fall asleep.”
Ellie snorted. “That’s your own fault for pre-drinking so hard.”
“I pre-drink exactly the right amount,” Tom argued, waving his drink for emphasis. “I’m just, ugh, it’s too comfortable out here. I could just close my eyes,”
“Don’t you dare,” Ellie warned. “I will push you in.”
Pam swallowed a smirk, her fingers tightening slightly around James beneath the blanket. She could feel the tension in his muscles, the restraint he was barely clinging to. Her own resolve wasn’t faring much better.
James’s fingers moved in slow, teasing strokes, pushing deeper, and Pam had to take a sip of her drink just to keep herself composed. She turned slightly, still carrying on the conversation as though nothing was amiss. “I don’t know, Tom,” she said, feigning amusement, “I think you’d make a great water feature.”
Tom groaned dramatically. “You’re all terrible friends.”
James’s fingers curled slightly inside her, and Pam almost choked on her drink. She coughed lightly, covering it with a small laugh, shifting in James’s lap as her own hand grew bolder, stroking him eagerly beneath the blanket. He exhaled sharply but didn’t falter, his touch insistent, driving her mad with every slow, deliberate motion.

Pam bit her lip as James’s fingers withdrew, leaving her empty for a fleeting moment before he shifted beneath her. She could feel him, thick and ready, pressing against her entrance. Her fingers tightened around him in response, guiding him with slow, deliberate precision. The boat rocked ever so slightly as she adjusted herself, her body straining for more, for the relief they both craved.
She kept her face smooth, her voice even, as she joined in on the conversation, laughing at Ellie’s latest absurd remark. But beneath the blanket, in the cover of darkness, their quiet, secret game neared its peak. James’s breath was ragged against her neck, his grip on her thigh tightening as he held himself steady.
Pam shifted again, her body pressing down, the slow, delicious stretch as he entered her sending a wave of heat through her. James’s fingers dug into her thigh, his breath catching as he fought to stay still, to keep control. The movement was imperceptible to anyone watching, disguised by the gentle rise and fall of the boat.
Ellie rolled her eyes at Tom’s continued grumbling. “You know what your problem is? You have no patience.”
Pam nearly laughed aloud, her pulse racing as she took a slow sip of her wine. “Patience is highly overrated.” she murmured, her voice smooth, controlled.
James exhaled against her neck, barely a whisper of sound, but she could feel the tension in his body, the effort it took not to move too much, not to lose himself in the moment. The river rocked beneath them, the voices of their friends blending into the night, the lanterns flickering golden light across the water.
It was a game of restraint now, of subtle movements, of quiet, unbearable tension.
The first firework shot into the sky, a golden streak arcing high before exploding in a burst of shimmering light. A collective murmur of appreciation rippled through the punts, conversations quieting as everyone turned their attention skyward. The opening notes of the music drifted across the river, deep and resonant, vibrating through the air. Moments later, another firework soared up, bursting into cascading reds and blues, perfectly timed to the swelling melody.
Pam tightened her fingers on James’s forearm as he shifted beneath her, his movement subtle but deliberate. Each long slow thrust was perfectly synced with the pulse of the music, the rhythmic explosions overhead masking the soft gasps that escaped her lips. The heat between them burned hotter than the gouts of flame that erupted over the river, flaring in time with the beat, their glow reflecting in the water.
The boats rocked gently, a rhythmic motion that matched the cadence James had set. No one was paying attention to them now, everyone was caught in the spectacle above, mesmerized by the lights, the music, the fire. The air smelled of sulfur and burning embers, the distant scent of champagne still clinging to the night.
James’s lips brushed softly against her neck, his breath warm against her skin as he moved in time with the surging crescendo of the orchestra. Another firework erupted above, a symphony of silver and violet raining down as the music swelled. Pam bit down on her lip, a quiet moan swallowed by the deafening crack of the explosion. She could feel the tension in James, the way he was holding back, the way every slow, deliberate movement was both torture and ecstasy.
The fireworks continued in dazzling succession, each explosion illuminating the boats in golden light. Shadows danced across the faces of their friends, Ellie’s eyes wide with awe, Tom grinning as he lifted his drink to his mouth. None of them noticed the way Pam’s body trembled slightly beneath the weight of pleasure, the way James’s eye seemed fixed on Pam's neck rather than the fireworks.
A massive explosion rocked the sky, a golden firework fanning out like a weeping willow, trailing sparks in all directions. The music surged, the flames on the river shooting high, bathing everything in flickering orange light. James’s fingers pressed into her skin, his control fraying as they moved together, caught in the symphony of fire and sound.
Pam’s head tipped back slightly, her breath stolen as she felt the peak drawing near, her body trembling with restrained need. Another burst of fireworks drowned out the sound of their pleasure, colors raining down in brilliant splendor, masking the moment as they surrendered to the rhythm of the night, lost in the blaze of light and sound.
As the fireworks built to a dazzling crescendo, so did they, their movements instinctively mirroring the rising tension in the sky. Each burst of color illuminated their entwined bodies for the briefest moment before plunging them back into shadow, the heat between them intensifying with every rhythmic surge. The tempo of the music climbed, the air electric with anticipation, as James matched the fervent pulse of the night.
Pam’s breath came in shallow, silent gasps, her fingers curling into the fabric of James’s shirt as she fought to keep herself composed. A particularly powerful explosion cracked through the sky, white-hot tendrils of light branching out over the river, and she bit down on her lip, her quiet moan lost in the noise. The flames along the river flared higher, a golden wave of heat rolling across the boats.
James moved with her, his control slipping with every spark and boom that cascaded above. The symphony reached its pinnacle, the music swelling to its most dramatic peak, and Pam felt herself swept away in it, every nerve alight, every sensation amplified by the dazzling display.
The display reached its fevered peak, the sky ablaze with golden fire as the fireworks display surged toward its grand finale. The air was thick with the scent of smoke and heat, the river reflecting every brilliant burst in shimmering waves of light. The music swelled, the pounding rhythm vibrating through the air, matching the pulse that coursed through Pam and James as they moved in perfect sync, caught in the symphony of sensation and sound.
Pam’s breath came in ragged gasps, her body quivering as she felt herself approaching that delicious cliff edge. The tension within her coiled impossibly tight, every movement of James within her pushing her closer, his grip on her hips unrelenting, guiding her with desperate precision. The fireworks above illuminated the scene in pulsing flashes, streaks of red and gold burning against the night as her body clenched around him, the rush of pleasure breaking like a wave through her.
She stifled a moan, the sound lost in the eruption overhead as a cascade of silver and crimson fire rained down. Her fingers tangled in the blanket, her body convulsing in time with the rhythmic pounding of the music as her orgasm overtook her.
James’s breath was ragged, his grip tightening, his pace unsteady as his own climax overtook him. He groaned against her skin, a deep, guttural sound drowned beneath the booming symphony of explosions in the sky.
His hands gripped her thighs, his body tensing as he gave himself over completely, his release surging deep into her in sync with the final, brilliant burst of white light streaking across the heavens. His cum shot deep into her cunt, exploding from him in a fierce burst of heat and passion. He could feel his seed pulsating within her, filling her up completely.
Pam's body shook violently atop him, every muscle straining under the intense pleasure. Her eyes rolled back in her head once more, her face contorted in ecstasy.
Their bodies trembled together, locked in that perfect moment, the crescendo of fireworks mirroring their own shattering crescendo, sound and sensation blending into a dizzying climax of heat and electricity.
The world slowed. The fireworks faded into shimmering embers, drifting lazily through the sky before dissolving into the night. The river’s gentle rocking returned, the cheers of the crowd a distant hum. Pam collapsed against James, her breath still coming in soft, unsteady pants, her body still pulsing with aftershocks of pleasure. James wrapped his arms around her, holding her close, his lips pressing into the damp skin of her shoulder in a lingering kiss.
Ellie turned to them, smirking. "You timed that well. Are you both done?" she asked, raising an eyebrow.
Pam froze, her flushed face betraying her instantly. James cleared his throat, rubbing the back of his neck as if that might somehow mask the obvious tension still thrumming between them. She gave a small, breathless laugh, avoiding Ellie’s knowing gaze. "Uh, I don’t know what you mean"
Ellie’s grin widened, her eyes sparkling with amusement. Mmm-hmm. Sure you don’t. So you wouldn’t mind if I borrowed that blanket covering you both for a little?"
Tom let out a low chuckle, shaking his head. "Honestly, the way you two were going at it, it’s a surprise the whole river didn’t notice."
Pam groaned, burying her face in James’s shoulder as the others laughed. "Oh my god, can we not?"
"What?" Ellie teased. "It’s not our fault you two decided to put on a whole show."
"We were discreet!" James protested weakly.
Tom snorted. "Mate, we literally heard you moaning in sync with the fireworks."
Ellie nodded sagely. "Very poetic, though. 10 out of 10 for coordination."
Pam peeked up from James’s shoulder, half-amused, half-mortified. "Are you done?"
"Are you?" Ellie shot back, grinning.
James groaned, letting his head fall back against the boat. "We’re never living this down, are we?"
"Nope." Tom clinked his drink against Ellie’s with a grin. "Absolutely not."