Here I will list off all the Pokémon Ash caught within the first 16 seasons of the anime, what season he caught them, what episode he caught them, where he caught them, and their original trainers (if they had a trainer before Ash). Here are the first 20.
Kanto (Original Series)
1. Pikachu (episode 1- Pokémon- I Choose You!)
Pikachu was Ash's starter Pokémon that he received from Professor Oak. He received Pikachu because he woke up late on the day he was supposed to start his Pokémon training. Pikachu didn't like Ash AT ALL when Ash first got him, and was very disobedient, refusing to help Ash catch a Pidegy, laughing at Ash when Pidgey flew away, and laughing at Ash when a Ratata took food from his backpack. He began to listen to Ash when he saw Ash protecting him from a flock of angry Spearow. He is currently traveling with Ash in the Kalos Region.
2. Butterfree (episode 3- Ash Catches a Pokémon!)
Ash caught him as a Caterpie, but instead of battling Caterpie and weakening him first, Ash just threw a Pokémon and managed to get a lucky catch. When Caterpie was sent out to fight against Team Rocket, he evolved into Metapod. In the following episode "Challenge of the Samurai" he evolved into Butterfree. Ash released Butterfree in "Bye Bye Butterfree" so he could raise a family with the Pink Butterfree. He is living with the Pink Butterfree at an unknown loacation.
3. Pidgeot (episode 3- Ash catches a Pokémon!)
Ash caught Pidegot as a Pidgeotto in the Viridian Forest, the exact same place where he caught Caterpie, but the difference was he actually battled against Pidgeotto instead of just throwing a Pokéball. It evolved into Pidgeot in the episode "Pallett Party Panic" and at the end of the episode Ash released Pidgeot so it could protect a group of Pidgey and Pidgeotto from a flock of Fearow which is led by a Spearow. Pidgeot is currently in the Viridian Forest.
4. Bulbasaur (episode 10- Bulbasaur and the Hidden Village)
Ash met Bulbasaur at the Hidden Village where he was a guard determined to protect the other Pokémon that were living in the village because they were all injured or had been abandoned by their trainer. Bulbasaur hated Ash, Misty, and Brock when he first met them, but after he witnessed them protecting the other Pokémon from Team Rocket they gained his trust, and he allowed Ash to battle him and Ash successfully caught him. He is currently acting as the peacekeeper for Professor Oak at his lab.
5. Charizard (episode 11- Charmander- the Stray Pokémon!)
Ash caught Charizard when he was a Charmander. Charmander had a trainer named Damian, but after Charmander lost in a battle, Damian left him on a rock promising to come back for him when he had no intention of doing so. At the end of the episode, Charmander learned to use Flamethrower, and Damian wanted to take him back, but Charmander saw that Damian didn't respect him, so he used Flamethrower on him making him run away. Charmander evolved into Charmelon in "March of the Exeggutor Squad" and after that he began disobeying Ash. He evolved into Charicard in "Attack of the Prehistoric Pokémon!" but was still disobedient towards Ash. It wasn't until the episode "Charizard Chills" that Charizard began to obey Ash after Ash helped him regain his strength after losing to a Poliwrath. He is currently at Professor Oak's lab while Ash travels in Kalos.
6. Squirtle (episode 12- Here Comes the Squirtle Squad!)
Ash and his friends were traveling on their way to Vermillion City when they heard about a group of trouble making Squirtle called "The Squirtle Squad". Ash's Squirtle was the leader of the trouble making squad. After Ash saved him from being crushed by a rock, he decided to join Ash. He is currently back with the Squirtle Squad who are now firefighters that help out Officer Jenny.
7. Kingler (episode 13- Mystery at the Lighthouse)
Ash caught his Kingler as a Krabby on the beach and his Pokéball was sent to Professor Oak's lab right away afterwards because Ash already had 6 Pokémon with him at the time, which is the maximum amount a trainer can have with them at one time. He evolved into Kingler in the episode "Round 1- Begin". He is currently at Professor Oak's lab.
8. Primeape (episode 25- Primeape Goes Bananas)
Ash and his friends were traveling to Celadon City when a wild Mankey comes around and when they make Mankey angry, he steals Ash's hat which makes Ash furious. Soon afterwards, Team Rocket showed up, and after James kicked Mankey, he got angry and evolved into Primeape. Ash called Charmander out to battle against Primeape and he successfully defeated him allowing Ash to capture him. Ash and Primeape won a competition for Fighting types called "The P-1 Grand Prix" in the episode "The Punchy Pokémon" and after the competition Ash gave Primeape to a trainer named Anthony who Primeape is currently training with.
9. Muk (episode 30- Sparks Fly for Magenemit)
While Ash and his friends were traveling through Gringey City Ash meets a group of Grimer led by Muk who have made the city so fifthly that it's a desolate wasteland. Ash battles Muk and manages to catch him (I'm just guessing that Muk is a male, although Muk's gender was never confirmed in the anime)
. He had to be sent to Professor Oak's lab because his Pokéball stunk so bad. He is still at Professor Oak's lab even though the stench he had before has been removed, and usually he can be seen smothering Professor Oak whenever Ash calls.
10. Tauros (x30) (EP035)
Most fans know about Ash's Tauros and that the episode he caught them in was banned from airing outside of Japan due to the immense amount of firearms in the episode being pointed at Ash, Kaiser, and even being fired at Team Rocket. There was a video of the episode on YouTube in Japanese with English subtitles, and I watched it once, and I think another reason the episode was banned was because Team Rocket held Kaiser hostage and forced him to tell them about the whereabouts of Diratini, and when he refused to talk James said something to him and the English subtitles translated that James told Kaiser "You are really starting to piss me off." That's not appropriate language for a children's show, so that could've been another reason the episode hasn't aired outside of Japan. Ash's Tauros are currently at Professor Oak's lab and he would use Tauros from time to time in battle, and usually when he returns to Kanto after a journey and goes to Professor Oak's lab such as in "The Dream Continues" all 30 of his Tauros are super excited to see him and they all trample him.
11. Lapras (episode 84- The Lost Lapras)
While on Tangelo Island Ash and his friends witness three guys bullying a poor Lapras. Ash defends Lapras as best he can and after a while Pikachu scares the three guys away. At the Pokémon Center Nurse Joy says that Lapras just needs rest. She also says that Lapras is afraid of humans. Tracey notes that Lapras is only an infant and must've been separated from his herd. After a while Ash gains Lapras' trust and he catches him. From that point on Lapras acted as the transportation from island to island up until Viva Las Lapras when he was finally reunited with his mother.
12. Snorlax (episode 95- Snack Attack)
As the gang continues traveling through the Orange Islands they stop on the first of the Seven Grapefruit Islands. Ash is about to eat a grapefruit when a woman named Ruby accuses Ash of being a thief that has been stealing all the islands grapefruit. Ash explains to Ruby that he and his friends just arrived on the island and Ruby apologizes. Once they find out the thief is actually a Snorlax Ash decides to capture him. With the help of Jigglypuff and her lullaby Ash is able to catch Snorlax, who falls asleep due to the lullaby, before falling asleep himself. Snorlax is currently at Professor Oak's lab while Ash travels in Kalos.
13. Heracross (episode 119- A Sappy Ending)
Ash and his friends are traveling in the forest on their way to Violet City when they notice the dead trees. Among them Pikachu finds one that's alive and very healthy and there's some Bug-types sucking from the tree. The Bug types are a group of Heracross who have been driven away from their own forest by a group of Pinsir. It turns out the forest where the Pinsir are supposed to live was being destroyed by Team Rocket and that's why the Pinsir are invading the forest where the Heracross live. Once Ash and his friends resolve the issue the Pinsir and Heracross go back to their own forests. On their way out of the forest the group notices a Heracross following them and he was very fond of Ash for helping him out so Ash caught him. He is currently at Professor Oak's while Ash travels through Kalos.
14. Bayleef (episode 126- The Chikorita Rescue)
Ash caught Bayleef back when she was a Chikorita. He was walking through the forest with his friends when he noticed her sunbathing and decided to battle with her. She had amazing strength but she was also very stubborn and wouldn't give up, even when she was facing off against Charizard, who she was a strong disadvantage against. Team Rocket stole her and tried to convince her to join their side, but after Ash saved her she joined him instead, and this is also probably the biggest reason she fell in love with Ash and always tried to get his attention. In the episode Current Events, Team Rocket managed to catch her and then sent out Arbok and Victreebel commanding them to attack Ash. Seeing Ash in pain made Chikorita so worried and she evolved into Bayleef and saved Ash. In the following episode Turning Over a New Bayleef she attempted a few times to run into Ash's arms the way she had as a little Chikorita, resulting in Ash getting mad at her. While Ash was helping Brock set up the gangs lunch Totodile began dancing around right next to Ash, attempting to get Ash's attention. Bayleef then wanted to run into Ash's arms but she imagined Ash spilling the food and yelling at her, so she walked up to him as cautiously as she could, but he still yelled at her and the last thing he said to her was "Get away from me and stay away from me." As a result Bayleef became upset and ran away without eating her lunch. She ended up getting attacked by a group of Beedrill that she accidentally disturbed by kicking a rock into where the Beedrill were living. A caring elderly woman named Haruno in the Japanese version (unnamed in the English dub) took Bayleef to her house and nursed her back to perfect health. When the woman commented on looking for Bayleef's trainer Bayleef simply shook her head so the woman let Bayleef stay with her and help out in her garden. Later on, Ash and his friends arrived and Ash attempted to apologize to Bayleef numerous times, but she wouldn't forgive him. It wasn't until Ash helped free Bayleef and the woman's Pokémon from Team Rocket that Bayleef began to realize Ash was truly sorry for yelling at her and she helped him to free the other Pokémon and forgave Ash. She is currently at Professor Oak's lab.
15. Quilava (episode 141- Good 'Quil Hunting)
In the episode Good 'Quil Hunting Ash and another trainer named Koji wanted to catch a Cyndquil that had been living inside of a cave. After a battle with said Cyndaquil, Ash caught him, and then Koji challenged Ash to a battle with Cyndaquil as the prize. Brock advised Ash against this since he already caught Cyndaquil, but Ash wanted to teach Koji a lesson about being such a huge jerk that he accepted the challenge. Luckily, Ash managed to win so he got to keep Quilava. Much later, Ash wanted to use Pokémon from Sinnoh and Pokémon he had caught from previous regions as well for the Sinnoh League. Team Rocket managed to trick Ash and steal his Pokéballs and when Ash found them he saw everyone had managed to escape from their Pokéballs. After a long amount of searching Ash found Totodile, Corphish, Snorlax, and Bayleef (who wanted to stay outside with him), and last but not least Cyndaquil, who unfortunately had been cornered by Team Rocket. Poor Cyndaquil was under a lot of stress but managed to evolve into Quilava and learn Eruption which sent Team Rocket blasting off. Quilava is currently at Professor Oak's.
16. Totodile (episode 151- The Totodile Duel)
Ash and his friends are fishing at a lake, although Ash gets bored causing a fight between him and Misty. Something then tugs on Misty's line which is only a tea kettle, and this angers Misty even more. She then decides to use her special fishing lure which she designed after herself. Just then Totodile comes out of nowhere and starts dancing. Both Ash and Misty want to catch him so they decide to have a battle to see who will get him. After the battle is over Ash wins ownership of Totdile, but Misty doesn't even care since Poliwag evolved into Poliwhirl. He is currently at Professor Oak's lab.
17. Noctowl (episode 154- Fowl Play)
Ash and his friends meet Dr. Wiseman, a man who wants to catprue a Shiny Noctowl, however he always gets outsmarted by the Noctowl. Ash also decides he wants to capture Noctowl, but he is outsmarted by Noctowl as well when he uses Hypnosis on him. After Team Rocket tried to capture Noctowl Ash rescued him and managed to catch him. Noctowl is currently at Professor Oak's.
18. Donphan (episode 230- Hatching a Plan)
In the episode Extreme Pokémon Ash won a Pokémon Egg for winning a competition in which he used Bayleef to help him pull a skateboard in a race. Two episodes later in Hatching a Plan his Egg hatched into a Phanpy. During Ash's travels in Hoenn Phanpy evolved into Donphan. He is currently at Professor Oak's.
19. Swellow (episode 278- You Never Can Tailow)
As Ash, May, Max, and Brock are eating lunch in the Petalburg Woods a flock of Tailow attacked and one of them stole a bar of chocolate from Max, making him angry. Ash wanted to catch that specific Tailow who was the leader of the flock. Tailow proved to be a tough opponent though, enduring several Thunderbolt and Thunder attacks from Pikachu. Ash caught Tailow to avoid seriously injuring him and then let Brock treat Tailow's injuries. 76 episodes later in That's Just Swellow, Ash entered a PokéRinger competition with Tailow. While battling against James from Team Rocket, (who was in disguise), in the finals, after several attacks by Jessie's Dustox, (who James used in the competition), Tailow evolved into Swellow. Thanks to Swellow Ash won the PokéRinger tournament. Swellow is currently at Professor Oak's.
20. Sceptile (episode 281- Tree's A Crowd)
In the episode Tree's A Crowd Ash and his friends were still in the Petalburg Woods when they saw a whole family Treecko, and Ash states that he's wanted to catch a Treecko ever since he saw one at Professor Birch's Lab. He and Pikachu go off on their own and find a group of Treecko that lived in a tree that was over a thousand years old and unfortunately was dying. However one Treecko refused to leave the tree and did everything in his power to prevent the tree from dying. It was then that he met Ash and Pikachu who helped him get the tree back to normal. After the old tree died, however, a new tree came to life in the same spot. Treecko decided he wanted to travel with Ash, and he was caught after a battle against Pikachu. 59 episodes later in the episode Exploud and Clear, Ash noticed that Treecko wasn't eating much and he wondered if something was wrong with him. While battling a trainer named Guy and his Loudred, Treecko evolved into a Grovyle at the same time as Loudred evolved into an Exploud. 95 episodes later in Odd Pokémon Out, Grovyle fell in love with a Meganium who was working with Nurse Joy at the Pokémon Center. However, a wild Tropius was also in love with Meganium, so Grovyle fought with him in order to win Meganium's heart. Although he won the battle, Meganium was already in love with Tropius and she ran to his side to comfort him. Seeing this broke Grovyle's heart. Soon afterwards Team Rocket came by and kidnapped Meganium and Tropius. Seeing this made Grovyle furious and he fought them in order to free Meganium and Tropius, evolving into Sceptile in the process, although due to his broken heart over Meganium's rejection, Sceptile was unable to use any of his Moves. Sceptile's heartbreak was cured and he regained the ability to use his Moves in Cutting the Ties that Bind. He is currently at Professor Oak's. Interesting fact about Sceptile, he was the first Pokémon to defeat Tobias' Darkrai in battle during the Sinnoh League.