Perez delivered a strong recovery drive after suffering a lap one puncture. Hulkenberg, on the other hand, was out of luck after being hit by Esteban Gutierrez at turn two of the first lap, which ended his race.
Perez said he would have finished higher had not the first lap puncture did not happen.
"It's obviously good to come away with my first points of the year, but without the puncture on lap one the result today could have been so much better. I did not get the best start, but I found a good line going into turn two and I was ahead of Ricciardo and Vettel coming out of the corner. Then I realised I had a puncture, which dropped me to the back of the field," Perez said.
Hulkenberg said he was disappointed to end the race in a chaotic collision.
"It was a very frustrating end to my weekend. I got to turn two and felt a big shove from behind: Esteban (Gutierrez) out-braked himself, hit me and spun me around. I was hit by other cars and the damage was too much to even attempt to continue. It's very disappointing and not the way I wanted to celebrate my 100th race weekend," he said.