Ness Racquet Club, LLC (“Ness”), appeals a final summary judgment in favor of Ocean Four 2108, LLC (“Ocean Four”), the defendant, and a non-final order denying Ness’s motion to dissolve writ of garnishment. We reverse the final summary judgment and the order denying the motion to dissolve.
On November 1, 2006, Ness, a developer, and Ocean Four entered into a precon-struction purchase and sale agreement for a condominium unit at Eloquence on the Bay in Fort Lauderdale. Pursuant to the contract, Ocean Four placed deposits on the condominium unit totaling $177,600.00 in escrow with Attorney’s Title Insurance Fund (“the Fund”), and Ness agreed to substantially complete the unit within two years of the signing of the contract. The purchase and sale agreement provided for the closing to take place subsequent to the seller obtaining a temporary certificate of occupancy. It also provided that the issuance of a temporary certificate of occupancy would constitute conclusive evidence of substantial completion as follows:
6. CLOSING
(a) TIME OF CLOSING. This transaction shall close subsequent to Seller’s obtaining the temporary Certificate of Occupancy from the proper Governmen*202tal agency responsible for issuing said Certifícate on the floor in the building in which the Unit is situated. Seller shall give fifteen (15) calendar days written notice of the closing date to Purchaser at Purchaser’s address as same appears on the signature page hereof. Issuance of said Certifícate for the Condominium shall constitute conclusive evidence of substantial completion of the Unit, as provided in this Contract. The fact that there may be items to be corrected or completed shall not delay nor postpone the Closing nor require the holding of any portion of the purchase price in escrow until the completion thereof.
On October 15, 2008, within two years of the parties’ entering into the purchase and sale agreement, a temporary certificate of occupancy (“TCO”) was issued for the unit. The closing then was set to take place on October 81, 2008. Pursuant to a request from Ocean Four, the parties agreed to extend the closing until December 1, 2008. Before the closing could take place, Ocean Four sent a letter seeking to rescind the contract and demanded return of its deposit, asserting that the building had not been completed and that Ocean Four could not move into the unit. After Ocean Four did not close on the unit by December 1, 2008, Ness sent written notice to Ocean Four that it was in default under the contract, and that it had twenty days from the notice to close or it would be in breach of the contract. On April 23, 2009, Ocean Four filed an eight-count complaint, including a count for breach of contract, against both Ness and the Fund seeking return of its deposit. Ness counterclaimed for breach of contract for failure to close. In September, 2009, the parties agreed to the dismissal of the Fund from the lawsuit. All parties agreed that the Fund would hold in escrow the funds in question until such time as the court directed disbursement, the time for appeal had expired, and the Fund received a copy of the final order. On August 19, 2009, Ness filed a motion for summary judgment on all counts in the complaint and on the counterclaim. The trial court denied Ness’s motion for summary judgment and, sua sponte, entered summary judgment in favor of Ocean Four, which had never filed or moved for summary judgment. The trial court entered final summary judgment in the amount of $177,600.00 in favor of Ocean Four. On December 13, 2010, Ocean Four served the Fund with a writ of garnishment seeking to garnish the funds in escrow. Ness filed a motion to dissolve the writ, which the trial court denied. This appeal followed. We reverse both of these orders.
We reverse the final summary judgment for two reasons. The first reason concerns the lack of opportunity for the opponent of the summary judgment motion to oppose its issuance where the trial judge sua sponte entered summary judgment for the non-moving party. Although it is the better practice for both parties to file cross motions for summary judgment, where one party has moved for summary judgment, the court, in the absence of a timely and meritorious objection, may dispose of the matter by granting judgment to either party if there is no genuine issue of material fact and if it finds that the facts, properly construed against the prevailing party, show that such prevailing party is entitled to summary judgment as a matter of law. Carpineta v. Shields, 70 So.2d 573 (Fla.1954). Where a party has not filed a summary judgment motion or where no notice or opportunity to be heard has been given to the opposing side to present opposing affidavits, a trial court may not sua sponte grant summary judgment in favor of the non-movant. See Hotel 71 Mezz Lender, LLC v. Tutt, 66 So.3d 1051 (Fla. 3d DCA 2011) (holding that summary judgment in favor of non-movant especially disfavored *203where case requires resolution of material issues of fact); Univ. of Miami v. Sosa, 629 So.2d 172 (Fla. 3d DCA 1993) (holding that sua sponte entry of summary judgment in favor of non-movant improper where material factual issues remain to be resolved); see also Kelly v. Militana, 595 So.2d 113 (Fla. 3d DCA 1992) (holding that trial court may not grant a summary judgment where no summary judgment motion is pending and where there is no notice or opportunity to present opposing affidavits).
The second reason for reversal concerns the presence of disputed issues of material fact that preclude the granting of summary judgment. Generally, whether there has been a breach of the terms of the contract is a question of fact, and the issue of whether there is a defense that excuses the breach is typically a question of fact. 23 Williston on Contracts § 63.15 (4th ed. 2002). The record before us reflects the existence of disputed and genuine issues of material fact that are disposi-tive of the issue of whether there has been a breach of the terms of the contract between the parties. The contract, by its very own terms, presents a disputed issue of material fact as to whether there has been substantial completion under the contract, and that question alone precludes the entry of summary judgment. See CDI Contractors, LLC v. Allbrite Elec. Contractors, Inc., 780 So.2d 963, 965 (Fla. 5th DCA 2001) (“[Wjhether a subcontractor has substantially performed is a question of fact and should not be decided as a matter of law.”); Nat’l Constructors, Inc. v. Ellenberg, 681 So.2d 791 (Fla. 3d DCA 1996)(same). The fact that a TCO has been issued is “solid evidence” of substantial compliance to be used in deciding the factual issue of whether a breach of contract occurred. See CDI, 780 So.2d at 965.
We therefore reverse the summary judgment in favor of Ocean Four.1
Since the escrow agreement between the parties provides that the deposits being held by the Fund remain with the Fund in escrow until such time as the court directs disbursement, the time for appeal has expired and the Fund receives a copy of the final order, the trial court erred in entering a writ of garnishment. See Van Vorgue v. Rankin, 41 So.3d 849, 853 (Fla.2010) (holding that disputed funds were restricted funds being held in escrow by agreement of the parties and the order disbursing the funds was in error). We reverse the order denying the motion to dissolve the writ of garnishment.
Reversed and remanded for further proceedings.
. We also find that the trial court erred in holding that the provision in the agreement which states that the issuance of a temporary certificate of occupancy constitutes conclusive evidence of substantial completion of the unit creates an unconstitutional irrebuttable presumption. We find that the provision is not unconstitutional as it is between two private parties to the contract.