Did large scale naval battles ever occur in the medieval ages, before the advent of cannons?
the Battle of Sluys in 1340 between the French and English during the Hundred Years' War is a good example of a medieval naval battle.
at Sluys the French chained their ships together in several defensive lines.
The dispositions of the French were made in accordance with the usual medieval tactics of a fleet fighting on the defensive. [The French commanders] Quiéret and Béhuchet formed their forces into three or four lines chained together, with a few of the largest stationed in front as outposts.
the English attackers closed on the French lines and proceeded to engage in a series of boarding actions. sea battles at the time were basically land battles on the water, with each ship acting as a sort of floating castle.
Edward sent his ships against the French fleet in units of three, two ships crammed with archers and one full of men-at-arms. The English ships with the archers would come alongside a French ship and rain arrows down on its decks, the men-at-arms would then board and take the vessel... The battle was essentially a land battle at sea. The two opposing ships would be lashed together and the men-at-arms would then engage in hand-to-hand fighting.
the English ships were mainly merchant cogs that were converted into warships by the addition of tall wooden "castles" at the bow and stern. the French used mainly oared galleys, a type of ship that had been in use in the Mediterranean for thousands of years. while galleys were highly maneuverable they rode much lower to the water than the taller English ships. this gave the English a significant advantage in the battle as their archers could easily shoot down onto the decks of the French galleys. as a result the French took extremely heavy losses and the battle was an overwhelming victory for the English.