रामगंगा नदी का उद्गम उत्तराखण्ड के राज्य के पौड़ी गढ़वाल जिले में दूधातोली पहाड़ी की दक्षिणी ढलानों में होता है। नदी का स्रोत, जिसे "दिवालीखाल" कहा जाता है, गैरसैण तहसील में ३०º ०५' अक्षांश और ७९º १८' देशांतर पर स्थित है। नदी गैरसैण नगर के बगल से होकर बहती है, हालांकि नगर उससे काफी ऊंचाई पर स्थित है। यह चौखुटिया तहसील में एक गहरी और संकरी घाटी द्वारा कुमाऊँ के अल्मोड़ा जिले में प्रवेश करती है। वहां से उभरते हुए यह दक्षिण-पश्चिम की ओर मुड़ती है और लोहाबागढ़ी की दक्षिण-पूर्वी सीमा के चारों ओर व्यापक रूप से घूमते हुए तड़ागताल नदी को प्राप्त करती है। इसके बाद यह उसी दिशा में आगे बढ़ती है और गनाई पहुंचती है, जहां इसमें दूनागिरी से निकली खरोगाड़ बाईं ओर से और पंडनाखाल से आयी खेतासारगढ़ दाईं ओर से आकर मिलती है।

गनाई से निकलकर यह तल्ल गेवाड़ क्षेत्र की ओर बहने लगती है, जहाँ नदी के किनारे और आसपास समृद्ध भूमि के साथ एक खुली घाटी है जहाँ बड़े पैमाने पर खेती और इसी नदी के जल से सिंचाई होती हैं। मासी के बाद घाटी कुछ हद तक सिकुड़ती है, लेकिन अभी भी बृद्धकेदार मंदिर तक कुछ उपजाऊ मैदान मिलते हैं। यहाँ इसमें चौकोट से निकली विनोद नदी आकर मिलती है, और इस बिंदु से आगे नदी का बहाव दक्षिण दिशा की ओर हो जाता है, और इसके दोनों ओर उपजाऊ मिट्टी के ढेरों और चट्टानों से भरे खड़े पहाड़ दिखाई देने लगते हैं। मासी से ग्यारह मील आगे यह भिकियासैंण पहुंचती है, जहां इसमें पूर्व की ओर से गगास और दक्षिण की ओर से नौरारगाड़ आकर मिलते हैं। यहाँ घाटी एक बार फिर से चौड़ी हो जाती है, लेकिन सिंचाई अभी भी मुख्यतः मामूली धाराओं से होती है। भिकियासैंण से नदी पश्चिम की ओर एक तीव्र मोड़ लेती है और सल्ट से नेल और गढ़वाल से देवगाड़ का पानी प्राप्त करती है। मारचुला पुल के बाद से कुछ दूर तक यह अल्मोड़ा और पौड़ी गढ़वाल जिलों की सीमा बनाती है। इसके बाद यह भाबर में प्रवेश करती है और पतली दून से पश्चिम की ओर बहते हुए में जिम कॉर्बेट राष्ट्रीय उद्यान में प्रवेश करती है।

रामगंगा, जो पहले से ही बड़ी नदी बन चुकी है, उत्तर प्रदेश राज्य के बिजनौर जिले में स्थित कालागढ़ में मैदानों में प्रवेश करती है, जहां सिंचाई और पनबिजली उत्पादन के उद्देश्य से नदी पर एक बांध का निर्माण किया गया है। यहाँ से लगभग १५ मील आगे खोह से इसका संगम होता है, और फिर यह मुरादाबाद जिले में प्रवेश कर जाती है, जहाँ की जलोढ़ तराई भूमि पर यह दक्षिण-पूर्वी दिशा में बहुत ही तेज बहाव के साथ बहती है। यह मुरादाबाद नगर से होकर बहती है, जो इसके दाहिने किनारे पर बसा हुआ है, और रामपुर जिले की ओर आगे बढ़ती जाती है, जहाँ चमरौल के पास इसका संगम कोशी से होता है। रामपुर में भी यह मुरादाबाद की ही तरह उसी दिशा और तेज बहाव के साथ पार कर बरेली जिले में आ पहुँचती है। 
बरेली जिले में रामगंगा पश्चिम की ओर से प्रवेश करती है और दक्षिण-पूर्व की ओर बढ़ती है। कुछ दूरी पर ही इसमें भाखड़ा और किच्छा की संयुक्त धारा आकर मिलती है। इसके बाद यह बरेली नगर के समीप पहुँचती है, जो इसके बाईं ओर स्थित है। यहाँ इसका संगम देवरनियाँ और नकटिया नदियों से होता है - दोनों नदियाँ बरेली नगर से होकर बहती हैं। बरेली के समीप चौबारी गाँव में सितंबर-अक्टूबर माह में गंगा दशहरा के अवसर पर नदी के तट पर वार्षिक मेला आयोजित किया जाता है। यहां क्षेत्र की नौकाओं के लिए बारिश के दौरान यह नौगम्य हो जाती है, लेकिन सूखे के मौसम के दौरान इसका उपयोग नहीं किया जा सकता है। बदायूँ, शाहजहाँपुर में बहती हुई, यह जलालाबाद में जाकर अधिक बोझ वाली नौकाओं के लिए नौगम्य हो जाती है। इसके बाद यह हरदोई जिले में आ जाती है, और अंत में लगभग ३७३ मील का कुल सफर तय करने के बाद, कन्नौज के विपरीत गंगा नदी में मिल जाती है।

राम गंगा के धार्मिक-आस्था के महत्व
वन्य-सम्पदा
प्रवाह
पौराणिक उल्लेख