The state’s House of Representatives passed a bill raising the age to buy a gun from 18 to 21 and imposing a three-day waiting period on all gun sales.
The bill, already passed by the Senate, now goes to the state governor.
Seventeen people were killed at Marjory Stoneman Douglas High School in Parkland, Florida, on 14 February.
Since the shooting, many surviving students have lobbied politicians for greater gun control.
State lawmakers debated the bill for about eight hours on Wednesday before voting 67-50 in favour.
The bill does not include a ban on the sale of assault-style weapons, despite it being a key demand of students and their parents.
The new legislation allows the arming of some public school personnel, although classroom teachers are exempted.
The voluntary armed “marshals” programme for schools in Florida was named after Aaron Feis, a coach who died in the Parkland shooting.
It allows school staff who do not teach in classrooms to be armed, subject to school district approval and specialist training.
The exemption of classroom teachers was deemed necessary to get the bill passed.
A spokeswoman for Florida Governor Rick Scott said earlier this week that he had not yet decided whether to support the new measures.
The bill, known as the Marjory Stoneman Douglas High School Public Safety Act, will automatically become law within 15 days unless he vetoes it.
The US national minimum age to buy a handgun is already 21.
Florida law already mandates a three-day waiting period before the purchase of a handgun is completed. However, a person as young as 18 can buy a rifle in Florida, with no waiting period.
Police say expelled former student Nikolas Cruz was 18 when he legally bought the AR-15 semi-automatic rifle used in the attack. (Courtesy BBC)