Work Header

tell me who did this to you

Work Text:

It was just something that had been going on for years now. Sapnap hates Dream, Dream hates Sapnap. It’s mutual, their feelings, and they were never (always) afraid to express it.


Dream’s stone-cold attitude remained constant. His inability to care for anyone other than himself always came before his ability to do so, and he didn’t really have many friends. Sapnap thought he was the most selfish bastard on the whole planet, outright angry at him for being so self-centered. It wasn’t that he was obsessed with himself; he just didn’t care about anything or anyone. 


Or so Sapnap thought, at least. 


Ever since they were little, Dream had never cared for him at all. Deep down, Sapnap yearned for the affection of Dream, just wanting some sort of care from him. They had been friends years ago, in what seemed like a past life. It ended abruptly when they hit high school, which was almost three years ago. 


They’d been so close, such good friends before all of this. But Dream had always been the same. Never really caring, or never showing it, at least. When he was younger, Sapnap would cry sometimes, unwillingly letting himself shed tears in front of Dream, and had never received the comfort he longed for. Not once had he heard some sort of “it’s okay” or “I understand” from the boy. It was infuriating, even then. Sapnap loathes it terribly. 


However, Sapnap was an oblivious person. He was painfully, constantly looking through glass fogged with biases. Through translucent ice, he knew Dream hated him with all his guts. But besides, Sapnap hated the way Dream was anyways; it made sense, the common feeling being mutual. Though Sapnap was never really sure why Dream hated him. It could very possibly be because he was gay; but nothing he ever said was directly homophobic. Though their verbal battles seemed… off, in a way, Sapnap could never put his finger on it. 


They hated each other, though never said out loud. It was just a known thing. But it was never really physical like one would assume a high school rivalry to be. Sure they’ve punched each other once or twice, the action twined with aggression, but they never got too hurt. A bruise or two maybe, but no critical damage. 


But verbal was another story. It wasn’t super often, but when it did happen to pop up, they had done some pretty vicious bickering. They never fought too long, however, simply because Dream always let up first. Sapnap was usually the one who started it.


And it’d been going on for years. Sure, it was petty, but Sapnap didn’t care. Neither of them did. In fact, they were fine with keeping it that way. 


Until this party. 


Sapnap’s not even completely sure what happened. 


The whole situation was blatantly confusing, to say the least, but one thing leads to another, and George, his best friend, takes him to a party. It was a Friday night, and Sapnap had nothing better to do. He didn’t take much convincing.


Things start to shift quickly. The party is immediately extreme from the moment Sapnap lays foot through the doorway, and it’s exhausting. His energy was drained from him completely within minutes; the music was too loud, the people were too energetic, and the whole house was alive in a way that made Sapnap rub his temples with weariness. 


And it escalated just as quickly. 


He’d only had one beer, not even having downed the entire bottle yet. He was just floating around without cause, trying to find some purpose in this place. There was no reason for anyone to be angry at him, let alone start beating him into the hardwood floors. 


Yet that’s what happened.


Sapnap barely even remembers what happened. He couldn’t explain to anybody what had gone down, he only remembers who it was. It was John, the most homophobic guy in the school. And he was violent, too; extremely, at that. Sapnap deemed it easier to expel him, but that never happened, for whatever reason. He beat people up constantly. Whether it be because he was closeted, raised wrong, or jealous, no one knew. All they knew was to evade his path if they wanted to continue without bruises. 


He only knows how much it hurts now. He might’ve fallen asleep or passed out or something, because now he’s on a bed with a slightly shaking guy scrolling on his phone. 


His eyes open to George, who’s sitting on the edge of the bed swinging his feet. He’s probably scrolling through Twitter or something; Sapnap can’t see his screen. It hurts his neck to crane it like that. His arms are sore; it takes an effort to move them around normally. His legs are slightly in pain, and it feels like he has bruises on his stomach and maybe some cuts or something. He can’t tell, can’t lift his head enough to see. 


“George?” It comes out pathetically, squeaking a bit with pain. 


“You’re awake!” He immediately shuts his phone off and moves closer to observe him. “Are you okay? How do you feel?”


“Uh… hurt,” is what he comes up with. He’s in a lot of pain, but he might be able to walk. He relays this message. 


“Okay. Well, I tried to get you an ice pack, but this house apparently has none? Which I don’t understand, but anyways, I put some band-aids on your stomach, and there’s one on your face. You might wanna look in the mirror, or something, because you look a little… bruised up,” George rambles, gesturing appropriately. 


“Okay,” is all Sapnap can muster. 


“I’m going to go back to the party, I think, if you’re okay…?” When Sapnap realizes he’s asking him if he is, he nods and waves him off. He knows George probably has something exhilarating going on behind closed doors. 


“Yeah, go ahead, I’m all good.”


“Okay. I’ll see you,” George says, pocketing his phone as he gets up, then exits out into the hallway. He doesn’t shut the door, but Sapnap can’t find it in him to do it himself. 


He lays there momentarily before standing up and walking into the attached bathroom. It’s sort of a nice bathroom, and he kind of feels bad for the host of the raging party, but he drops the thought with ease. 


All of his thoughts, more like, are dropped when he sees his reflection in the mirror.


He’s so bruised that his face almost looks different. He’s got a black eye, and his nose looks like it was previously bleeding, and his cheek has a few cuts with blood that’s dried around them. 


It’s kind of hot. But his entire body hurts. 


He begrudgingly takes himself back to the side of the bed where he checks his phone, but turns it off when he sees mass amounts of notifications on his lock screen. Of course, people were already talking about the fight. He starts to walk towards the door in plans of going home. God, Sapnap just wants to lie down and sleep for hours. 


But the hopes of that are shattered when Dream comes bursting into the room, grabbing Sapnap by the already-wounded arm. 


It takes him by surprise. The last thing Sapnap had expected was Dream to come into the room, nonetheless sprint on top of that. 


Dream pulls him dangerously close with force. “Who did this.” Sapnap’s lungs collapse at the tone. Shock courses through his veins, unable to comprehend the situation unfolding before his eyes.


He can barely breathe. “Dream?” he whispers, a weak attempt to understand. “Y-you’re… arm hurts…” his volume is weak and small, and he’s not sure Dream even heard him over the music blasting from the floor below.


He holds him tighter. So he didn’t, then. “Tell me who did this to you.” Sapnap whimpers at his insistent grab on his arm. It hurts, but it doesn’t really. His words are laced with malice, sharp and demanding, venom dripping from his teeth. The addition of the words “to you” makes Sapnap wonder if the rage is biased. The grip on his arm felt more like a hold on his lungs. With wide eyes, he looks up at Dream, searching his face for some sort of answer. 


“Why do you care?” Sapnap asks softly, confused, nervous. He’d never seen Dream this aggressive his heart was ice, he never let as much as a nice comment fall through his cold lips. 


Deep down, Sapnap’s not sure he would mind the frostbite.


“Tell me, Sapnap.” He sounds angry. Sapnap’s never heard this much spite behind simple words before. It makes his heart race. 


His ability to decline is far from accessible. “John.” His voice wavers. 


Dream lets him go, and Sapnap feels like the fall is everlasting. His heart feels ungrounded, unoccupied with answers he wishes he had. He’s left with an emptiness that he just can’t let go.


As Dream turns to escape, Sapnap clutches his sleeve, tugging him backward. His muscles hurt from the action, weak from previous events. He must be transparent, because Dream ceases his pulling. 


“You’ve never cared…” Sapnap continues gently, voice wavering. “Why?” It’s barely a whisper. 


Dream avoids his gaze. “I can't tell you.”


“You’re not slick, Dream,” Sapnap says, purely to scare him. It works; Dream’s expression becomes exposed for a moment, only allowing a slice of reality for display. It’s gone after Sapnap blinks. 


“You have no idea,” Dream says, but it’s not accusatory. It’s genuine. 


Sapnap shakes his head admittedly. “No, I don’t. But where are you going?” His head tilts as he asks. His grip falls from Dream’s shirt. 


Dream smirks, his perfect white teeth showing. “To find that son of a bitch.” A split second later, he’s back through where he entered, weaving around bodies in search of John down the hallway. Sapnap’s stomach churns.


What the hell?


Sapnap lets himself stand in shock, thinking rapidly. He rubs his arm where Dream had held him. Where did… that come from? Why did he come to find him? How did Dream know where to go? 


What was he going to do about it?


Why did he care


He’s never cared. Not for one moment in his life has Dream shown a single piece of sympathy for him. It doesn’t even make him very mad; it just feels like he’s missing something. Like there’s another puzzle piece awaiting him somewhere beyond where they stand now. 


Sapnap’s mind feels like an inescapable swirl, spinning with confusion beyond comprehension. It had all happened so fast, flying in and out of his mind before he could catch all of it. 


He’s never cared. 


So why does he now?



It’s blowing up his phone the next morning. He barely has time to wake up. It takes him a moment to find it. 


Dream beat him up. Dream beat up John. 


Sapnap opens his phone, his heart racing from all of the lingering notifications on his screen, clicking on each one, trying to figure out what the fuck they’re on about. But then he finds one that takes him to the video someone there posted. The thumbnail on the video was enough to make a guess from. 


And Sapnap loses his breath for what seems like the hundredth time this week. 


“Holy shit, ” he breathes out, the video having already started. 


The video buffers momentarily, then starts without pause. He watches the screen with focus, trying to comprehend everything- too many things- at once. 


The video starts with Dream already up in John’s face. It’s scary to see him so utterly outraged; Sapnap’s heart lurches. He’s not even sure he can watch the whole thing. 


In summary, Dream’s punches were strong. Each hit was a red mark, if not a bruise, almost immediately. Sapnap’s heart was racing just watching it. By the time the video ended, Sapnap thinks John probably might’ve gone home— or the hospital. His vision was becoming blurry, and he couldn’t tell. Everything was just so blurry. 


His hands shaking, he turns his phone off and tosses it to the side. He goes to rub his face in distress but is met with painful bruises. He flops back down onto his pillows, sighing. What the hell? It’s hard for him to even comprehend the mere situation, let alone understand what the hell Dream had to do with it. 


He’d been dealing with homophobia long enough to know it was no surprise that he’d been targeted. But why had he gotten beaten up? It was new to him, everything. Dream… being there, John, just… everything. It felt like a tidal wave swallowing him under, but no alert was broadcasted.


He felt cold, even underneath all his blankets. He was shivering, his hands shaking, and his mind buzzing. 


He thought about Dream for a moment. Not why he did it, but how he looked when he did. He was angry, angrier than Sapnap’s ever seen him… and he got pretty mad sometimes. How had he seemed so smug when he told Sapnap he was going to go find him, only to lash out like that so soon afterwards? And his punches, he looked so fucking strong , and Sapnap wonders how strong he really is. 


He thinks about Dream. Not because he’s agitated with him, but because he was so fucking annoying. Sapnap lets his mind wander. It could be something else, too….


He tries to go back to sleep, sinking into the cold sheets. He suppresses the idea.



Until he can’t anymore. 


He doesn’t go to school the next day, or the day after that. Some bruises heal, some cuts shrink, and eventually, he looks presentable enough to go to school. He’s less sore as well. His mom makes him go despite his desperate pleas to stay home. He knows the water isn’t calm yet, and to go to school so soon is practically a death wish. But he does anyway. 


John isn’t there. Dream is. 


He tries to go through his school day normally, just trying to get by. He goes through each class by ignoring everyone and everything. It’s boring, but it’s safe, and it’s simple. The entire day goes by speedily, no bumps in the road. He’s proud of himself. He makes it. 


The whole day, no issues, and now he just has to go home. 



Until he can’t. 


His mom is stuck at work: so busy that there’s no way she can catch a break to leave. Sapnap reassures her that it’s no worry, he’ll get home from a friend or something along those lines. 


But everyone’s already left the school. 


Sapnap decides to sit in the library and annotate for his language arts class for a while before he makes his attempt to walk home. The walk was long and tiring, and his body was still sort of sore. He decides to procrastinate until he finds some motivation to begin the journey home. 


But of course, Dream finds him in there, and this time, Sapnap can’t avoid him. 


“Sapnap,” he says when he gets close enough. Sapnap doesn’t respond; he tries to pretend he didn’t even hear, continuing to write annotations in his book. 


Dream leans on the high counters next to him, not sitting in a chair. He’s the same height as Sapnap when he’s sitting down on the tall chairs, even though Dream is taller than Sapnap when they’re both standing. 


Dream pokes him. “Hey, Sapnap.”


Sapnap groans with annoyance. He’s made it so far… “What do you want?”


Dream appears surprised. “Woah, woah, no thank you? Come on now.” He smiles, and it pisses Sapnap off. He’s not mad that he beat John up, but the last person he wants to see after these shit days is Dream


“What do you want,” Sapnap says sharply, putting down his pencil finally. He glares at Dream, who actually seems lost for a moment. 


“I-I don’t know…” he whispers softly, his gaze falling from Sapnap’s. 


Sapnap’s jaw falls. What was this now? 


He decides to continue while Dream’s submitting. “Why did you beat him up, Dream?” he demands. “I was fine—“


“You weren’t fine,” Dream interrupts pointedly, playing with the rings on his hands. He’s nervous…? Sapnap’s mind is spinning, hurting with confusion. 


“But why did you?” he asks desperately. “I’m used to it, you don’t…” He takes a deep breath, pauses, and collects his words thoughtfully. “You’ve never cared, ever. So why the fuck—“


“I do care, dumbass!” Dream exclaims, pounding his hands slightly on the table. Sapnap jumps a bit, and Dream looks apologetic for a moment. “I always have, and I just—“


“But you never—“


“I didn’t know how!”


“You still don’t! You beat someone up!” Sapnap’s voice raises, despite their setting. Regardless of the fact that they constantly cut each other off, they know exactly what they’re trying to communicate. 


Dream falls silent for a small moment. “...It’s all I know how to do…” is what comes out in a whisper, a simple confession laced with guilt and regret. Dream tilts his face downwards, his eyes sad. Sapnap remembers suddenly what Dream’s life was like growing up. 


When they were friends, Dream would sometimes show up to school with bruises, and Sapnap would ask what they were. Dream always brushed it off, but one day he finally told him: they were from his father. 


“...Oh,” Sapnap says, just as softly. His eyes fall to the same spot on the table that Dream has his gaze fixed on. 


They sit there in silence for a moment. Sapnap thinks long and hard, trying to understand yet again. This time, he gets it a little better. 


Dream speaks before he can catch a chance to. “I don’t hate you, you know.” Dream throws a quick glance to Sapnap, then back down at the table. “A-are you mad…?” His words are gentle, treading melted ice. 


“No, no, no, I’m not mad at you, Dream… not at all,” Sapnap rushes out quietly, fiddling with his hands in his lap. “I thought you hated me…” It comes out accusatory, surprised.


Dream shakes his head, and Sapnap continues. “But why…?


Dream shakes his head again. “I didn’t know what to do.” He shrugs and scoffs at himself. His voice is below a whisper then, “Still don’t.” 


Sapnap sits and thinks, accepting the confession. Everything starts connecting in his mind, little light bulbs lighting up with new awareness.


He nods slowly to himself. Understanding. 


“Can you drive me home?” Sapnap asks bluntly. 


Dream looks at him. Communication.


“Yeah, of course,” Dream replies earnestly, diving his hands into his pockets in search of his keys. 


Sapnap packs up his stuff, Dream helping him. They walk out together, shoulders brushing with something more than just movement. 





Dream’s on the wheel, Sapnap in the passenger seat. It feels oddly normal, despite them being previously “enemies.” It feels okay. 


“Can I still ask why you beat him up?” Sapnap pokes him in the arm. “Instead of, I don’t know, anything else ?” Dream smiles. It feels easy. 


“He hurt you,” is all Dream replies with. 


Sapnap scoffs despite the unfamiliar swirl in his stomach. “Jeez, protective much?”


Dream just grins with pride, shrugging nonchalantly. 


Sapnap’s heart leaps, and he tries to ignore it. He does—until he can’t. Dream’s grip on the wheel is intoxicating in a way Sapnap can’t even begin to describe, his muscles tensing as he turns sharp corners. Sapnap loses his breath.


“I was also slightly drunk,” Dream adds after quite a few long moments. 


“Ah,” Sapnap nods, smiling to himself. He attempts to not sound breathless. 


They drive in silence for a while. Dream sometimes makes random small talk, and it flows from there easily. They have no trouble keeping one consistent conversation for minutes on end. It’s so easy, so smooth. Sapnap wonders how they got here so quickly. Maybe they were meant to end up here. Sapnap bounces his knee repeatedly. 


Sapnap’s dreading getting out of the car, but he can’t tell exactly why. Every moment, his house draws nearer, but he doesn’t want to leave. 


They arrive, and Dream makes a point of it. Sapnap doesn’t move. He can’t leave without tying up a loose end that’s been hanging for way too long, whether it was under their noses or right in front of their eyes. 


“Well, uh…” Dream starts awkwardly, unknowing. “This is your house, ri—“


But Sapnap’s kissing him before can finish his sentence. 


Dream is stunned momentarily, but kisses back immediately after the initial confusion. It’s rushed, both of them moving fast, desperately eager. Words couldn’t have expressed how bad they both needed this, though it’s not like they had any words in mind. They weren’t very good at talking anyways. 


Dream’s touch is intoxicating, holding Sapnap with force yet ease. Dream’s hands are cold, contrary to Sapnap’s warm ones. The contrast feels amazing on their skin, no area safe from burning touch. Sapnap’s lips move with fire, the kiss heated by Sapnap’s rhythm. He parts them slightly and Dream grabs the opportunity before it’s gone, slipping his tongue past unspoken words and slick teeth. 


It feels so right, though they were just fighting moments ago, days ago, though they’ve been arguing their whole lives. It feels like they are making up for lost time, getting caught up in a way that doesn’t need words. 


Sapnap pulls back first, slightly shook. Their lips barely inches away, they search each other’s faces. Dream’s hand lays on Sapnap’s jaw gently, his grip softening under Sapnap’s gaze. He’s glad his wounds are healed. 


“I just— I think I kinda had to just… you know,” Sapnap says, unsure of how to explain himself. 


Despite Sapnap’s nervousness, Dream nods. “Yeah.” It’s breathless. He knows. He knows what he’s trying to say, despite the jumble of words that haphazardly string themselves together on Sapnap’s lips. 


They stare through each other. Sapnap’s mind is foggy, but it’s crystal clear. 


“I think I’ve always loved you,” Sapnap says softly, skating on ice with grace rather than carefully testing the waters. The ice is strong under his dance. What he doesn’t say is “ even after all you’ve put me through.”


Dream just pulls his collar to meet their lips in another kiss, their lips melting into each other. It’s shorter than the last, but nonetheless invigorating. Sapnap forgets why he ever hated Dream, his lips making up for it. 


Dream pulls away and leans his forehead on Sapnap. They breathe the same air desperately. 


“I can learn how to care, I promise,” he whispers. “For you, I always have. You’ll know it this time.” He gently rubs Sapnap’s jaw, and Sapnap feels like crying at the sincerity. “I’ll make sure of it.” It’s better than an “ I love you, too.” It means more to Sapnap. 


Sapnap detaches their heads and they withdraw their touch. Sapnap starts to gather his things. 


He gazes at Dream with honesty and says, “I believe you.” 


Dream breaks into a soft, vulnerable smile, one someone would never see unless Sapnap was around. 


“Call me, tonight?” Dream asks as Sapnap starts to exit the car. Dream starts up the car again. 


Before shutting the door, Sapnap says, “Of course.” And shuts it with care, waving to Dream on his way up to his house. 


And Sapnap’s smiling until his face hurts. He takes a cold shower, reveling in the way it surrounds his body, cooling his burning skin and reminding him of something all too familiar. 


As the cold water envelops his body in chills, he lets his mind roam. He knows that they’ve got so much time to make up for, so much to go over from their past. Though the conversation is bound to come, Sapnap’s not afraid. He’s not afraid because he knows it will be okay; him and Dream, Dream and him. They work , despite the fact that they haven’t worked for years. 


Sapnap thinks that the fighting always felt off because of the deeply repressed feelings he had for Dream. They were always there, lingering after a fight, reveling in the way that Dream’s muscles tensed, how his voice raised; it was hot, to say the least. And it was something Sapnap just couldn’t let go unnoticed any longer. 


Sapnap feels a chill run down his spine as he remembers how Dream’s hands felt on his neck, how perfect his lips were and how he used them so well. How euphoric the kiss was that it left a tingling on his own lips. How the touch remained persistent when Sapnap brought a finger to his mouth and felt gently along his lower lip, how if he ran his tongue along his lips he could taste Dream.


He reaches for the shower handle and turns the water warmer. 


So sure, he could say he hated Dream, and it might look believable. But he would rather kiss the smirk right off Dream’s face rather than argue. He thinks he could shut up Dream with a few movements if he tried. 


He smirks to himself, letting the warm water kindly caress his cold skin. The contrast feels nice on his tense muscles, creating another burning sensation that doesn’t really burn at all. He rubs his own shoulders as he thinks. 


He realizes there was sort of always an underlying tension between Dream and him. Even when they were younger, Sapnap could feel it. He remembers. 


They had been friends, after all. They were friends until they weren’t; the tension only rose during that time. How they would bicker was not of hatred, Sapnap realizes, it was just the suppression of his feelings. Through transparent water, he could see it now: they had loved each other longer than they hated each other. 


And now Sapnap can say it with ease, turning the shower handle directly onto the snowflake that represents the coldest water possible: he doesn’t mind the frostbite at all.