It started as one of those nights I figured would stay normal.
I had only been sharing the apartment with Harper for six weeks. Six weeks of her leaving coffee mugs everywhere, blasting music while she cooked, and walking around in oversized t-shirts that barely covered anything. She was twenty-four, fresh out of a bad breakup back home, and somehow the perfect roommate on paper. She paid rent on time. She didn’t complain about my late gaming sessions. She even remembered to buy milk.
That night the apartment smelled like roasted chicken and cheap red wine. Rain tapped against the windows in a steady rhythm, the kind that makes everything feel smaller and warmer inside. I had invited a handful of friends over for a low-key dinner party mostly to show off that I could actually cook something besides frozen pizza. Harper offered to help. Of course she did. She had this way of inserting herself into plans like she belonged there from the beginning.
Her hair was dark brown with these loose waves that always looked a little messy on purpose. Green eyes that caught the light from the cheap overhead fixture and turned almost hazel. She moved like someone who had never learned how to be self-conscious, hips swaying slightly when she reached for a plate, fingers brushing mine every time we passed something across the counter. I told myself it was nothing. Roommates do that. Especially hot ones.
The guests arrived around seven. Marcus brought beer. Lena brought a salad that nobody touched. Tyler and his girlfriend argued quietly in the corner about something stupid. Harper wore a simple black sweater that slipped off one shoulder and jeans that fit her too well. She laughed at everyone’s jokes, refilled glasses, and kept touching my arm when she wanted my attention. Just friendly. That’s what I kept repeating in my head.
By ten the rain had gotten heavier. One by one people made excuses. Marcus had an early shift. Lena hated driving in weather like this. Tyler and his girlfriend left mid-sentence, still bickering. The apartment emptied faster than I expected. Dirty plates stacked on the kitchen counter. Empty wine bottles lined up like witnesses. The leftover chicken sat cold in its pan. I started gathering glasses, trying to ignore the way the quiet suddenly felt loaded.
Harper didn’t leave.
She stayed on the couch with her legs tucked under her, wine glass half full, watching me clean up. Her green eyes followed every movement. I could feel it on the back of my neck. The rain kept falling. The heater clicked on with that familiar rattle. I wiped the counter for the third time just to have something to do with my hands.
“You don’t have to pretend to be busy,” she said softly.
I stopped. Looked at her. Her sweater had slipped further. One bare shoulder, smooth skin, a tiny freckle near her collarbone I had never noticed before. My stomach did something complicated.
“I’m not pretending,” I lied.
She smiled like she knew better. That was the first tension beat. The moment the usual roommate rules bent a little.
Harper set her glass down on the coffee table with a soft clink. She stood up slowly, stretched, and the hem of her sweater rode up enough to show a strip of skin above her jeans. I looked away too fast. She noticed. Of course she noticed.
“Everyone’s gone,” she said. “Just us now.”
I swallowed. The apartment felt smaller. The rain louder. She walked into the kitchen, bare feet quiet on the linoleum, and stopped right beside me. Close enough that I caught the faint smell of her shampoo, something like coconut and vanilla. She reached past me for a clean glass, her arm brushing mine. Deliberate. I felt the heat of her skin.
“Harper,” I started, not sure what came next.
She turned her head. Those green eyes locked on mine. “Yeah?”
I should have stepped back. I didn’t. Instead I noticed the ring on her finger for the first time that night. The one she usually wore. The engagement ring. It caught the light and looked suddenly wrong on her hand. She saw me looking.
That’s when everything shifted. She leaned against the counter, hip cocked, and gave me this small, tired smile that didn’t match the confidence in her posture.
“It’s not real,” she said.
I blinked. “What?”
“The engagement. It’s a lie. I made it up so my ex would stop calling. So my parents would stop asking why I moved across the country. I’ve been single the whole time I’ve lived here.”
My brain short-circuited. Six weeks of her laughing in the hallway, borrowing my hoodies, walking out of the bathroom in just a towel with water still dripping down her legs. Six weeks of me telling myself not to stare. And she had been waiting?
“Why tell me now?” I asked. My voice came out rough.
She shrugged. That signature little lift of one shoulder she always did when she was pretending something didn’t matter. “Because everyone else left. Because the rain makes it feel like the world stopped outside. Because I’ve been waiting for you to come back from wherever your head’s been hiding.”
She stepped closer. Her fingers brushed my wrist. Just that. A small touch. But it felt like a spark against dry kindling. I could see the pulse in her throat. My own heart was hammering so hard I was sure she could hear it.
I thought about pulling away. About laughing it off and suggesting we finish cleaning. About all the reasons this was a terrible idea. Roommates. Boundaries. The lease. The fact that if it went wrong I’d have to see her every day with her coconut shampoo and her messy hair and her zero-sense-of-personal-space personality.
But she was looking at me like she already knew what I was thinking. Like she had been reading me for weeks.
“I didn’t imagine this,” she whispered. “Not exactly. But I thought about it. A lot.”
Her hand stayed on my wrist. Warm. Steady. I didn’t move.
The rain kept falling. The leftover burrito from two nights ago sat forgotten in the fridge. A crumpled receipt from the wine store lay on the counter beside us. Normal things. Mundane things. And Harper, my hot roommate with no boundaries, was telling me she had been waiting.
I let out a shaky breath. “This is probably a mistake.”
She smiled again, softer this time. “Maybe. But I’m tired of pretending I don’t want to find out.”
That was the moment the first real tension cracked open between us. Not a kiss yet. Just the admission hanging there, thick as the rain outside. My hands were sweating. I wiped them on my jeans and she noticed that too. She always noticed everything.
We stood there in the kitchen for what felt like forever. The clock on the microwave blinked 10:47. Her green eyes didn’t leave mine. I could see the small scar on her eyebrow from some childhood accident she’d mentioned once. The way her lips parted just slightly like she was waiting for me to say something smart.
I didn’t have anything smart.
Instead I reached up and brushed a strand of hair behind her ear. My fingers trembled. She leaned into the touch like she had been starving for it. That simple gesture broke something loose inside me. The internal monologue screamed that this was crossing every line. But my body wasn’t listening anymore.
“You’re sure?” I asked, voice barely above the rain.
“I’ve been sure since the day I moved in and you helped carry my boxes upstairs,” she said. “You were so careful not to look at my ass. It was adorable. And frustrating.”
I laughed despite myself. A nervous, relieved sound. She laughed too, and the sound eased some of the tightness in my chest. But the heat stayed. It grew.
She took my hand and led me back to the living room. The couch cushions were still dented from where our friends had been sitting an hour earlier. She sat first, pulled me down beside her. Close. Our thighs touched. She turned toward me, one leg tucked under her again, that signature gesture that made her look both relaxed and ready to pounce.
“Tell me you’ve thought about it too,” she said. Not demanding. Just honest. Her voice had dropped lower, a little husky from the wine and the confession.
I nodded. “Every time you walked around in that damn towel.”
Her smile turned wicked for a second. Then softened. “Good. I wasn’t imagining it.”
She leaned in slowly. Gave me every chance to pull back. I didn’t. Our noses brushed first. Awkward. Human. Then her lips touched mine and the world narrowed to just the taste of red wine and the warmth of her mouth. The kiss started gentle. Careful. Then she made a small sound in her throat and it deepened. Her hand came up to cup my jaw. Mine found her waist, slipping under the hem of her sweater to find bare skin. She was warm. So warm.
We broke apart breathing harder. Her cheeks were flushed. A strand of hair stuck to her lip. I brushed it away. She caught my fingers and kissed the tips, eyes locked on mine the whole time.
“Is this okay?” she asked.
“Yeah,” I managed. “More than okay.”
That opened the floodgates for the escalation. She kissed me again, harder this time. Her body shifted until she was half in my lap. I felt the weight of her, the soft press of her breasts against my chest through her sweater. My hands roamed her back, learning the curve of her spine. She tugged at my shirt, pulling it up. I helped her get it off. The cool air hit my skin and then her hands were on me, exploring like she had been waiting years instead of weeks.
“You’re shaking,” she whispered against my mouth.
“Nerves,” I admitted. “And you.”
She smiled into the kiss. Her fingers found my belt. It got stuck. We both laughed, foreheads pressed together. The awkwardness made it real. She finally got it undone, slid the leather free with a soft hiss. Her hand slipped inside my jeans, palm pressing against me. I groaned. She made that small sound again, like satisfaction.
“I want to see you,” she said. Direct. No games.
I stood up. She stayed on the couch, watching as I pushed my jeans down. My hands were clumsy. She didn’t seem to mind. When I was just in my boxers she stood too, peeled her sweater off in one smooth motion. No bra underneath. Her breasts were full, nipples already tight from the cool air and the heat between us. I stared. Couldn’t help it. She had a small birthmark just below her left breast. I wanted to kiss it.
She hooked her thumbs in her jeans and pushed them down along with her panties. Stepped out of them. Naked in my living room like it was the most natural thing. Her body was soft in all the right places, toned legs from whatever workouts she did in her room with the door cracked. A small tattoo on her hip I had never seen. She stood there letting me look, chin lifted, that confident posture that always made my mouth dry.
“Your turn,” she said quietly.
I pushed my boxers down. I was hard. Painfully so. She stepped close again, her hand wrapping around me without hesitation. The feel of her fingers made my knees weak. She stroked slowly, watching my face the whole time. Her green eyes were dark now, pupils blown wide.
“Tell me what you like,” she whispered.
I told her. In broken sentences. She listened. Adjusted her grip. Kissed my neck while she worked me with her hand. I touched her too, sliding my fingers between her legs. She was wet. Soaked. She gasped when I found her clit, hips rocking into my hand. We stood there in the middle of the living room, touching each other, learning each other, the rain the only other sound besides our breathing.
She came first like that. Sudden and quiet, forehead against my shoulder, a soft “Oh god” breathed against my skin. Her legs shook. I held her up, fingers still moving gently until she pushed my hand away, oversensitive.
“Bedroom,” she said. Voice rough. “Now.”
We didn’t make it all the way. In the hallway she pushed me against the wall, dropped to her knees on the cheap carpet, and took me in her mouth. The heat was overwhelming. Her tongue swirled. Her hand stroked what she couldn’t take. I tangled my fingers in her messy hair, careful not to pull too hard. She looked up at me with those green eyes and I almost lost it right there.
I pulled her up before I did. Kissed her hard, tasting myself on her tongue. We stumbled into my bedroom. The sheets were unmade from that morning. A half-empty water glass sat on the nightstand. Normal things. She pushed me onto the bed and climbed on top, knees on either side of my hips.
“I want you inside me,” she said. Clear. Needing consent even now. “Do you want that?”
“Yes,” I breathed. “So much.”
She reached between us, guided me. The first push inside her was tight, wet, perfect. She sank down slowly, eyes fluttering closed for a second. When I was fully inside she let out a long breath, hands braced on my chest.
“Fuck, that feels good,” she whispered.
We moved like that for a while. Her on top, setting the pace. Rolling her hips in these slow circles that drove me crazy. I watched her breasts move, reached up to cup them, thumbed her nipples. She moaned softly. The sound went straight through me. Then she leaned forward, hair falling around us like a curtain, and kissed me while she rode me harder.
I flipped us at some point. Needed to feel more in control. She laughed when I did, a bright surprised sound that turned into a gasp as I thrust deeper. Her legs wrapped around my waist. Her heels dug into my back. I buried my face in her neck, breathing in that coconut scent mixed with sweat and sex now.
She came again like that. Louder this time. Her nails dug into my shoulders. Her voice cracked on my name. The feel of her tightening around me pushed me over the edge a few seconds later. I came hard, hips stuttering, groaning into her skin. We stayed locked together, breathing, hearts hammering against each other.
After a minute she stroked my back gently. “You okay?”
I nodded against her neck. “Yeah. You?”
“Better than okay.” She kissed my temple. “Stay inside me a little longer.”
We did. The rain kept falling outside. The apartment smelled like dinner and sex now. My mind was quiet for the first time in weeks. When I finally pulled out she made a small disappointed sound that made me smile. We cleaned up a little. Shared the half-empty water glass. Lay tangled in my sheets, her head on my chest, tracing patterns on my stomach with her finger.
That was the first full intimate scene. But it wasn’t the end of the night.
Hours later, after we had dozed and woken and eaten cold chicken straight from the pan in the kitchen like animals, the second encounter felt different. Slower. Deeper. The frantic energy had burned off and left something heavier in its place.
We were back in bed. The lights were off now. Only the glow from the streetlamp through the blinds cut stripes across her body. She lay on her side facing me, one leg thrown over mine. Her green eyes were softer in the dark. Vulnerable in a way I hadn’t seen before.
“I meant what I said earlier,” she whispered. “I’ve been waiting. Not just since I moved in. Since the day you interviewed me for the roommate spot and looked so nervous about living with a girl.”
I ran my hand down her side, over the curve of her hip. Her skin was warm under the blanket. “I was nervous. Still am, a little.”
She smiled. That small crooked one that made her look younger. “Good. Means it’s real.”
This time when we came together it was less about discovery and more about connection. I kissed her slowly, taking my time with her mouth, her neck, the freckle on her collarbone. She sighed under my hands. When I moved lower, kissing down her stomach, she threaded her fingers through my hair and guided me gently between her legs.
I tasted her there for the first time. She was sweet and salty and completely open. Her thighs trembled around my ears. She made these soft, desperate sounds that I memorized. When she came on my tongue she whispered my name like a prayer.
Then she pulled me up and we fit together on our sides. Facing each other. One of her legs hooked over my hip. I pushed inside her again, slow and deep. We barely moved at first. Just rocked together, foreheads pressed, breathing the same air. Her hand cupped my face. Her thumb brushed my lip.
“I like this,” she said quietly. “Feeling all of you.”
“Me too.”
We stayed like that a long time. The pace built gradually. Her breaths came faster. Mine matched. When she started to tighten around me again I reached between us and rubbed her clit with my fingers. She came with her eyes locked on mine, mouth open in a silent cry. I followed right after, burying myself as deep as I could, spilling inside her with a groan I couldn’t hold back.
Afterward we didn’t speak for a while. She curled into me, her messy hair tickling my nose. The rain had finally stopped. The apartment was quiet except for the occasional drip from the leaky faucet in the bathroom. I traced the tattoo on her hip with one finger. A tiny constellation. She had told me once it was for her little brother who passed away young. The intimacy of that memory hit me harder now.
“I don’t want this to be just one night,” she said eventually. Her voice was small in the dark. “I know roommates and sex is complicated. But I don’t want to go back to pretending.”
I held her tighter. “I don’t either.”
She lifted her head. In the dim light her green eyes looked almost serious. “Then we figure it out. Together. No more fake engagements. No more avoiding the bathroom when I’m in there.”
I laughed softly. “Deal.”
She kissed me once more, slow and sweet, then settled back against my chest. Her breathing evened out. I stayed awake a little longer, listening to the quiet, feeling the weight of her against me, wondering how six weeks had turned into this so fast.
The next morning the sun came out. Weak winter light filtered through the blinds. Harper was already up. I found her in the kitchen wearing one of my t-shirts, making coffee. Her hair was even messier than usual. She looked over her shoulder at me and smiled that same crooked smile.
“Morning,” she said.
“Morning.” I walked up behind her, wrapped my arms around her waist. She leaned back into me. Natural. Like we had been doing this for months.
We didn’t talk about the night before right away. We just existed in the space together. She handed me a mug. I took it. Our fingers brushed again, but this time it felt different. Intentional.
Later that day we cleaned up the mess from the dinner party. Laughed about how much wine had been spilled on the rug. She teased me about how clumsy I got when I was turned on. I teased her back about the sounds she made. The banter felt easy. The tension underneath it felt permanent now.
By evening we were back on the couch. Not touching yet. Just sitting close. She had her legs across my lap. I traced circles on her ankle. The TV was on but neither of us was watching it.
“I meant what I said last night,” she said suddenly. Turning to face me fully. Her green eyes steady. “About waiting for you.”
I nodded. “I know.”
She took a breath. “And I’m not going anywhere. Not unless you want me to.”
“I don’t.”
Her smile bloomed slow and real. She crawled into my lap then, straddling me, hands on my shoulders. We kissed like we had all the time in the world. When clothes started coming off again it was slower than the night before. More laughter when my shirt got stuck on my head. More soft confessions whispered against skin.
But that’s another story.
The point is, it all started that night after the dinner party when everyone else left and Harper stayed. My hot roommate with no boundaries, who turned out to have been hiding a whole lot more than just her single status. The rain, the cold chicken, the cheap wine, the way she looked at me when she finally told the truth.
You’re mine now.
I smiled because I already knew, and I accepted it completely.